功能相似时的Rest Api名称

功能相似时的Rest Api名称,rest,post,naming-conventions,Rest,Post,Naming Conventions,如果要求有两个端点(由于代码中的逻辑,它们不能是相同的端点),并且在保存图书后都返回图书id。api端点名称应该是什么 我不能同时使用/book/save。我不确定使用版本控制是否是个好主意,因为这表明它是api的较新版本。操作/端点使用的镜头不正确;REST中重要的是您的资源模型 拥有一个可以以不同方式修改的资源是完全正常的 POST /collection-of-books 此请求行告诉通用组件,我们正在对/图书集进行更改。该更改的实现可能取决于请求的消息体中包含的特定负载,这很好 考虑一

如果要求有两个端点(由于代码中的逻辑,它们不能是相同的端点),并且在保存图书后都返回图书id。api端点名称应该是什么


我不能同时使用/book/save。我不确定使用版本控制是否是个好主意,因为这表明它是api的较新版本。

操作/端点使用的镜头不正确;REST中重要的是您的资源模型

拥有一个可以以不同方式修改的资源是完全正常的

POST /collection-of-books
此请求行告诉通用组件,我们正在对
/图书集
进行更改。该更改的实现可能取决于请求的消息体中包含的特定负载,这很好

考虑一下这在web上的表现:在html文档中有两种不同的形式;用户选择适合其需要的表单,使用一些信息编辑输入控件,然后提交表单。接收HTTP请求的代码将查看请求主体中的表单数据,并选择要使用的正确实现


api端点名称应该是什么

任何你喜欢的符合你当地拼写习惯的东西

资源标识符类似于变量名/函数名。机器不在乎。机器只关心标识符是相同的(意味着我们谈论的是相同的资源)还是不同的(意味着我们谈论的不是相同的资源)。从REST的角度来看,任何与RFC3986定义的产生式规则一致的拼写都可以

因此,您的拼写选择取决于其他本地关注点(您希望在文档中看到什么?您希望在阅读访问日志时看到什么?您希望客户端在其浏览器历史记录中看到什么?)。概括地说,是什么拼写让你最关心的人的事情变得简单

我的建议是在您的资源模型中确定资源;当您知道两个资源为何不同时,您将对资源标识符的拼写有更清楚的了解