更正相关对象的REST API URL格式

时间:2016-01-26 22:13:10

标签: django api rest url relationship

我正在设计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框架之类的工具中实现第一个案例?

谢谢!

1 个答案:

答案 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/

传递第二个问题:)我没有使用那个特定的框架。