【发布时间】:2021-08-13 06:58:31
【问题描述】:
我阅读了一些关于更正(干净)用于休息端点的 url 设计的文章和帖子。 无论如何,我想讨论或建议我有一些疑问和不清楚的情况。
情况
假设我们有一个服务,它有注册用户。管理员可以为每个用户附加自定义注释,其中包含一些文本。
我想被告知的问题只是CRUD端点,这可能是微不足道的问题。
我们将有 4 个相关的端点:
POST(创建)
根据一些指导方针,我们可能会设计如下 URL:/users/{userId}/notes
并发送包含详细信息的有效负载。这里没有问题
获取(读取)
类似案例:/users/{userId}/notes
作为响应,我们会收到附加到特定用户的注释列表。这里没有问题
更新(更新)
类似案例:/users/{userId}/notes
作为有效负载服务器,接收带有所有 note 详细信息的 API 对象。
在这里,我有我的第一个疑问。由于我收到了包含userId: 值的note 对象- 我应该严格使用URL 模式吗? userId 在这种情况下是多余的。当然,我可以在PathVariable 和有效负载中接收该值,但这是正确的方法吗?同样的情况出现在许多其他CRUD's,这就是为什么我想知道“良好做法”
API 对象:
{
"id": 1,
"userId": 2,
"text": "Some message"
}
DELETE(删除)
类似案例:/users/{userId}/notes/{noteId}
事实上删除我只需要noteId 信息。我认为 - /users/notes/{noteId} 就足够了,但这对于 DELETE 操作意味着我会有不同的 URL。与UPDATE 的情况类似。
问题
我是否应该严格遵守 URL 命名约定并使用 /users/{userId}/notes?简单的 CRUD 操作有什么好的做法?
【问题讨论】:
标签: api rest clean-architecture