假设有一个名为 Draft '/api/drafts/' 的资源和另一个名为 Revision '/api/revisions/' 的资源。它们与一对一的关系相关。
要创建修订版,请在“/api/revisions/”上发出请求 POST,并在参数中提供草稿 ID。执行此操作的 JSON API 方式
POST /api/revisions/
Content-type: application/json
{
"data": {
"type": "revision",
"links": {
"draft": { "linkage": { "id": 1, "type": "draft" } }
}
}
}
这将创建修订资源,它与 Draft id=1 相关。所以响应将如下:
201 Created
Content-type: application/json
{
"data": {
"id": 1,
"type": "revision",
"links": {
"draft": { "linkage": { "id": 1, "type": "draft" } }
}
}
}
但是,POST /api/revisions/ 有副作用;它会更改草稿的属性。
例如)draft.revision_count:0 => 1
然而,客户所做的只是请求创建修订并因此接收创建的修订资源,并且无法知道草稿的数据是否已更改。
我的问题是,服务器是否有责任让客户端知道通过创建修订其他资源会受到影响并需要更新?