作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很想了解更多关于 PUT 调用的 RESTful 设计模式。具体来说,我是否通过在 PUT 调用中更改资源 ID 来违反规范?
考虑以下...
POST /api/event/ { ... } - returns the resource ID (eventid) of the new event in the body
GET /api/event/eventid
PUT /api/event/eventid - returns the (possibly new) resource ID depending on request body
GET /api/event/eventid - fails if the original eventid was used in the URI
最佳答案
REST 不是一个严格的规范,而是一组指导方针和最佳实践,可以遵循这些指南和最佳实践来构建易于理解和使用的 Web 服务。因此,没有什么可以阻止您在 PUT 期间更改资源 ID。
话虽如此,这样做是 IMO 一种不好的做法。 REST 背后的想法之一是可以使用 URI 引用每个资源。 .在您的情况下,此 URI 是路径和(我假设)内部 ID 的串联。这个 URI 可以被其他“系统”使用并存储为引用。如果在 PUT 上更改资源的 ID,则更改 URI 并且对该资源的所有引用都将被破坏 (404)。
如果您觉得需要更改作为 URI 一部分的 ID,您可能没有为其选择正确的属性。考虑其他不可变的东西(例如:用 UUID 标记您的资源并使用它而不是内部数据库 ID)。
关于web-services - REST API 设计 : Is it ok to change the resource identifier during a PUT call?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091133/
我是一名优秀的程序员,十分优秀!