RESTful URL中嵌套节点的好处是什么?

时间:2016-03-02 01:10:39

标签: api rest

有人可以帮助解释设计RESTful API网址的好处吗?"更正"方式:

/api/companies/1/buildings/4/rooms/420

VS。 "不正确"方式:

/api/rooms/420

我看到的好处:

  • 更容易理解为句子
  • 更容易推断出什么"更低级"资源可用(IMO是最好的理由)

Q1 我们是否认为任何其他建筑物中不应存在#420房间?我可以说它是数据库指针,所以也许这就是我感到困惑的地方。

另一件事是你不应该嵌套超过几个节点:

/api/companies/1/buildings/4/rooms/420/desks/5/legs/3

Q2:您在什么时候打破这些资源?或者这是否暗示如果发生这种情况,API设计需要重新思考?

问题3:在设计前端网址时,然后确定只是.com/rooms/420吗?

谢谢:)

1 个答案:

答案 0 :(得分:1)

URI并不是"读作句子"。您应该将URI视为不透明 - 它们不需要传达分层信息。 RESTful API使用资源之间的链接来导航到其他信息。使用RESTful API的程序员使用文档来识别资源类型之间的关系。

API客户不了解或关心您id的内容。也许它是一个数据库ID,也许不是。他们只知道URI api/rooms/420是识别特定资源的独特方式。

Q1。 ?房间#420存在于任何地方。在building资源上粘贴room个链接。客户可以按照该链接查看房间所在的位置。

Q2。 经常在客户允许的情况下将其分解。 :-)给那个URI,客户端如何搜索所有有两个以上窗口的房间,无论建筑物是什么?或者所有被标记为被抛出的办公桌,无论建筑物?扁平API比深层嵌套API更灵活。

Q3。它永远不会好。但是你决定设计它。我不清楚你的意思是"前端网址"。