REST API 使用复杂的 SQL 操作

REST API using complex SQL Operations

我有一堆规范化的 tables,称为 dangercountermeasuremodule。 现在我有一个三列 table krt 代表三个 table 之间的连接。 (列名 danger_idcountermeasure_idmodule_id/danger 等正常端点显示相应 table 的元素。

/krt?where={result: module, danger_id: x} 将向 table krt 查询所有带有 danger_id == x 的危险,并将结果与​​模块 table 连接起来。 结果看起来像(为显示而转换)

danger_id:
 - module a
 - module b
danger_id2:
 - module ..
[...] 

我当然可以提供一个视图并为此视图添加一个自定义端点。但不仅有三种可能的视图,还有带有一两个附加连接的更复杂的视图。 (如果需要也可以提供示例)

因此,这种查询和连接是一个常见的概念,还是我违反了此设计的任何 REST 约束?有没有更好/更直观的方式来提供此类信息?

如果你问 RESTful URL 会是什么样子,可能是

/krt?dangerId=x&result=module

在我看来,您决定如何构建 SQL 查询与 RESTful 设计无关。

也没有指南规定每个 GET 请求都必须是可缓存的——这也取决于其他因素。如果您的数据相当静态,但请求频率足够高,那么您可以将其缓存一小段时间。