http - Rest API - 好友集合创建

标签 http rest restful-url http-verbs

用户基本上可以将其他用户添加为好友。因此,我不是创建另一个用户资源,而是链接两个资源。

问题

  1. 处理这个问题的最佳策略是什么?
  2. 适合这种情况的动词是什么?

我听说有一个LINK动词,这似乎是合适的。

我还读到,我可以使用 PATCH 动词在资源上应用补丁。
如果可以的话我可以这样做吗

PATCH /users/{id}/friends

最佳答案

您可以考虑创建一个新对象。

如果您分离出友谊对象,您将能够创建和修改它们,而无需更新用户。每个友谊都有两个用户 key 。这也是一个悬挂有关友谊的额外信息的好地方,例如“好友”值。

POST /friendships

{
     primaryUser: 43,
     secondaryUser: 3
     since: "03/16/2010"
}

201 CREATED
location: /friendships/635

然后可以编写对用户 43 的查询,以包含用户 ID、好友 ID 或嵌入对象的数组。

GET /users/43

200 SUCCESS
{
    id: 43,
    name: "john",
    friends: [3]
}

或者

200 SUCCESS
{
    id: 43,
    name: "john",
    friends: [635]
}

200 SUCCESS
{
    id: 43,
    name: "john",
    friends: [
        {
             id: 635,
             primaryUser: 43,
             secondaryUser: 3,
             since: "03/16/2010"
        }
    ]
}

更新/删除的语义更加直接。在我看来,“删除”友谊看起来是 DELETE 而不是 PATCHPUT 更好。

关于http - Rest API - 好友集合创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12426406/

相关文章:

json - 如何从 SpringBoot Controller 中的 Flux<String> 获取 JSON 格式?

android - 如何从 android 中的 url 解析多个 JSON 对象和数组?我在那个例子中使用了一个我想要的例子,

http - Dart 的 http 服务器抛出异常

http - 如何处理 Jersey 发布请求的可变数量参数

javascript - MongoDB 有本地 REST 接口(interface)吗?

c# - REST 服务和大文件

java - 我的 Web 服务器似乎没有正确回复请求

http - 如何在 RESTful 网络应用程序中执行 "less popular"HTTP 操作?

c - 制作一个简单的HTTP网络服务器,使用errno回复 "403 Forbidden",然后重定向到403页面?