我正在为用户管理设计一个REST API,它必须支持以下CRUD操作:
/users
)/users/{userid}
)/users/{userid}
)/users/{userid}
)以及取决于用户状态的操作:
上述请求的有效负载不包含用户表示。它包含诸如例如为什么被阻止/暂停/存档的共鸣。
根据良好的REST设计实践,URI不应该是API操作,因此还有其他方法,例如POST /users/{userid}/activate
如何实施此类操作?
答案 0 :(得分:2)
根据Roy T. Fielding的论文,any information that can be named can be a REST resource:
5.2.1.1资源和资源标识符
REST中信息的关键抽象是一种资源。可以命名的任何信息都可以是资源:文档或图像,临时服务(例如“洛杉矶的今天天气”),其他资源的集合,非虚拟对象(例如人)等等。换句话说,任何可能是作者超文本引用目标的概念都必须符合资源的定义。资源是到一组实体的概念映射,而不是与任何特定时间点的映射相对应的实体。 [...]
由于状态属于用户,因此状态可以作为子资源进行管理用户资源。
要实现这一目标,您可以使用/users/{userid}/status
之类的网址。
答案 1 :(得分:1)
例如,有两种可能的选择:
/api/archivedUsers/
您可以在其中发布由用户URI和其他事件数据组成的元组