RESTful API 设计:是否应该 encourage/avoid 为特定资源的属性提供特定的子 URI?
RESTful API design: Is providing a specific sub-URI for a specific resource's properties something one should encourage/avoid?
尽量把API设计成RESTful,不知是否可以将一个资源划分为特定的子URI
让我们有以下 URI:
GET /users
: 列出用户
GET /users/42
:获取id=42
用户的详细信息,例如:
{
id: 42,
first_name: "Done",
last_name: "Joe",
is_active: false
}
我打算将 "is active" 状态视为自己的资源:
GET /users/42/is_active
: 获取 activity id=42
用户的状态
{
is_active: false
}
PUT /users/42/is_active
: 设置 activity 关于 id=42
用户的状态作为 body:
{
is_active: false
}
这样做有什么好处或坏处吗?
你说的是"micro-resource"。它对于以幂等方式进行部分更新很有用。它在更知名的 API 中并不流行,但它肯定是一种有效的设计方法。
尽量把API设计成RESTful,不知是否可以将一个资源划分为特定的子URI
让我们有以下 URI:
GET /users
: 列出用户GET /users/42
:获取id=42
用户的详细信息,例如:{ id: 42, first_name: "Done", last_name: "Joe", is_active: false }
我打算将 "is active" 状态视为自己的资源:
用户的状态GET /users/42/is_active
: 获取 activityid=42
{ is_active: false }
PUT /users/42/is_active
: 设置 activity 关于id=42
用户的状态作为 body:{ is_active: false }
这样做有什么好处或坏处吗?
你说的是"micro-resource"。它对于以幂等方式进行部分更新很有用。它在更知名的 API 中并不流行,但它肯定是一种有效的设计方法。