我正在设计REST API,其中包括两个对象。
Journey
Report
对于每个Journey
,有许多Reports
个路由,每个Report
只有一个关联的Journey
。
用户可以使用API创建Journey
,如下所示......
POST /journey/
然后检索详细信息......
GET /journey/1226/
第一个问题是,如果用户想要将Report
发布到他们的Journey
,这是正确的' API应该强加的URL结构?这对我来说似乎很直观......
POST /journey/1226/report/
......或者是这种情况......
POST /report/
...在后者中,Journey
ID在请求正文的某处传递?
第二个问题是,如何在诸如Django REST框架之类的工具中实现第一个案例?
谢谢!
答案 0 :(得分:1)
URL / URI结构几乎完全不相关。很高兴能够阅读它,或者很容易改变甚至猜测它,但就是这样。它们看起来没有“要求”官方或不成文。
但重点是,您在回复中向客户提供 URI。每个GET都会为您提供一个表示,其中包含指向您的客户可以访问的下一个“状态”的链接。这意味着服务器可以完全控制URI结构,客户端通常只需要知道“开始”或“主页”URI,就是这样。
这是一篇讨论这个问题的文章,有一些好处:http://www.ben-morris.com/hackable-uris-may-look-nice-but-they-dont-have-much-to-do-with-rest-and-hateoas/
传递第二个问题:)我没有使用那个特定的框架。