我有一堆规范化的表,称为danger
,countermeasure
和module
。
现在我有一个三列表krt
表示三个表之间的连接。 (列名danger_id
,countermeasure_id
,module_id
)
像/danger
这样的普通端点显示了相应表的元素。
/krt?where={result: module, danger_id: x}
将使用danger_id == x查询表krt
以查找所有危险并将结果与模块表连接。
结果看起来像(转换为显示)
danger_id:
- module a
- module b
danger_id2:
- module ..
[...]
我当然可以提供视图并为此视图添加自定义端点。但是,不仅有三种可能的视图,而且还有一些或两种额外连接的更复杂的视图。 (如果需要,也可以提供一个例子)
因此,这种查询和加入一个共同的概念,还是我违反了这个设计的任何REST约束?是否有更好/更直观的方式来提供此类信息?
答案 0 :(得分:0)
如果您要询问RESTful网址的外观,可能会像
一样 /krt?dangerId=x&result=module
在我看来,您决定构建SQL查询与RESTful设计无关。
还没有指导说每个GET请求都必须是可缓存的 - 它也取决于其他因素。如果你的数据是相当静态的,但经常被要求,那么你可能会在很短的时间内缓存它。