有人可以帮助解释设计RESTful API网址的好处吗?"更正"方式:
/api/companies/1/buildings/4/rooms/420
VS。 "不正确"方式:
/api/rooms/420
我看到的好处:
Q1 我们是否认为任何其他建筑物中不应存在#420房间?我可以说它是数据库指针,所以也许这就是我感到困惑的地方。
另一件事是你不应该嵌套超过几个节点:
/api/companies/1/buildings/4/rooms/420/desks/5/legs/3
Q2:您在什么时候打破这些资源?或者这是否暗示如果发生这种情况,API设计需要重新思考?
问题3:在设计前端网址时,然后确定只是.com/rooms/420
吗?
谢谢:)
答案 0 :(得分:1)
URI并不是"读作句子"。您应该将URI视为不透明 - 它们不需要传达分层信息。 RESTful API使用资源之间的链接来导航到其他信息。使用RESTful API的程序员使用文档来识别资源类型之间的关系。
API客户不了解或关心您id
的内容。也许它是一个数据库ID,也许不是。他们只知道URI api/rooms/420
是识别特定资源的独特方式。
Q1。 ?房间#420存在于任何地方。在building
资源上粘贴room
个链接。客户可以按照该链接查看房间所在的位置。
Q2。 我经常在客户允许的情况下将其分解。 :-)给那个URI,客户端如何搜索所有有两个以上窗口的房间,无论建筑物是什么?或者所有被标记为被抛出的办公桌,无论建筑物?扁平API比深层嵌套API更灵活。
Q3。它永远不会好。但是你决定设计它。我不清楚你的意思是"前端网址"。