首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REST中的命令建模

REST中的命令建模
EN

Stack Overflow用户
提问于 2019-09-04 15:39:51
回答 1查看 475关注 0票数 2

我正在寻找一种很好的方法来建模更改REST中资源状态的命令。我已经搜索了互联网,并找到了各种解决方案,我想得到这些利弊的反馈。

考虑具有"isActive“状态的资源。如果资源当前的"isActive“状态为false,则可以使资源处于活动状态,而visa则相反。

解决办法:

  1. 客户端使用新的状态将补丁程序放到资源上。
代码语言:javascript
复制
- PROS: Very simple.
- CONS: No nice way to provide hypermedia to indicate to the client that the resource can be activated/deactivated.

  1. 客户端发布到资源/{id}/activate。(不需要身体。)
代码语言:javascript
复制
- PROS: Hypermedia driven. Intuitive.
- CONS: Not truly RESTful (as action is conveyed in the Uri).

  1. 客户发布到资源/活动或资源/非活动。(主体包含应该添加到活动资源集合中的资源id )
代码语言:javascript
复制
- PROS: Hypermedia driven.
- CONS: Not as intuitive as option 2.

  1. 客户端发布或删除资源/{id}/isactive,以指示资源是否处于活动状态。
代码语言:javascript
复制
- PROS: Hypermedia driven.

据你所知,他们还有其他的方法吗?

我很喜欢选项3,但没有在网上看到这种方法,所以它可能违反了一些REST原则!

EN

回答 1

Stack Overflow用户

发布于 2019-09-04 15:43:45

引用https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#restful

用RESTful原则把它当作子资源来对待。例如,GitHub的API允许您使用明星精神PUT /gists/{id}/star无星可以使用DELETE /gists/{id}/star

将此方法应用于您的案例:

  • 激活:PUT /resources/{id}/active
  • 失活:DELETE /resources/{id}/active
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57791766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档