REST API使用复杂的SQL操作

时间:2016-08-26 08:32:29

标签: sql rest api-design

我有一堆规范化的表,称为dangercountermeasuremodule。 现在我有一个三列表krt表示三个表之间的连接。 (列名danger_idcountermeasure_idmodule_id) 像/danger这样的普通端点显示了相应表的元素。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

如果您要询问RESTful网址的外观,可能会像

一样

/krt?dangerId=x&result=module

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

还没有指导说每个GET请求都必须是可缓存的 - 它也取决于其他因素。如果你的数据是相当静态的,但经常被要求,那么你可能会在很短的时间内缓存它。