首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >现有资源的Restful链接

现有资源的Restful链接
EN

Stack Overflow用户
提问于 2015-09-07 21:15:26
回答 1查看 117关注 0票数 3

我不认为我的设置在任何方面都是独一无二的,但我似乎找不到很多关于这个主题的信息。我有一个User实体。用户可以拥有许多Roles。角色是系统中预定义的实体,客户端不能创建新角色。但是,客户端可以从Roles中添加或删除User。对于如何实现将RoleUser连接起来,我有一些想法,但我不确定哪一个是最好的选择。

GET /users/1/roles返回的集合如下:

代码语言:javascript
复制
[
  {
    "id":1,
    "name": "ACTIVE_USER"
  },
  {
    "id":2,
    "name": "ADMIN"
  }
]

以下是我已经考虑过的选择

1.体内roleId

POST /users/1/roles

代码语言:javascript
复制
{
  "roleId":1
}

2. url中的角色id

POST /users/1/roles/1

3.独立的用户角色端点

POST /user-roles

代码语言:javascript
复制
{
    "userId":1,
    "roleId":1
}

4.与GET /roles返回的格式相同

POST /user/1/roles

代码语言:javascript
复制
{
  "id":1        
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-07 21:31:43

角色是系统中预定义的实体,客户端不能创建新角色。

我建议你不要有任何选择,因为他们都是要求邮寄的。

请记住,角色是预先定义的,您不是在创建新角色,因此POST请求可能不合适。

相反,由于每个用户都有一个角色列表(可能是空列表,也可能不是空列表),所以我只需要执行一个修补程序请求,用一个新角色来更新该角色列表。记住PUT是创建/替换,补丁是“更新”

可能的情况是,您可以从用户中添加和删除角色。因此,我建议您向请求体添加一个操作参数:

代码语言:javascript
复制
PATCH /users/1

[
  {"action": "add", "path": "/roles", "roleId": 1}
]

若要向用户添加角色,请执行以下操作。为了删除,您可以自然地将add替换为remove

如果您想知道{"action": "add", "path": "/roles", "roleId": 1}的用法来自何处,请参阅{"action": "add", "path": "/roles", "roleId": 1}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32446128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档