1

这个问题基于来自http://jsonapi.org/的格式

假设要实现跟随/取消关注之类的功能,最好的 jsonapi 方法是发出以下请求:

POST /users/<user_id>/following/
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json
{
    "data": [
        { "type": "user", "id": <following_user_id> }
    ]
}

现在,用户资源具有受此请求影响的属性(例如 is_followed、followers_count)。我的问题涉及想出一种从两个选项之一中处理此问题的方法。

  1. 通过Response让客户端知道相关资源的变化
  2. 期望客户端发出 GET 请求以刷新资源
4

1 回答 1

0

JSON API 规范从这里声明了以下内容:

可以通过向代表资源集合的 URL 发送 POST 请求来创建资源。请求必须包含一个资源对象作为主要数据。资源对象必须至少包含一个类型成员。

所以,只要你有一个类型成员,这两种方法在技术上都是正确的。

这两种方法中较好的是第一种,在大多数 JSON API 实现中,返回在其响应中创建的资源的所有属性是一个通用约定。期望客户端发出 GET 请求来刷新资源似乎是不好的做法。

于 2017-09-05T11:44:52.963 回答