"job": {
"id": 1,
"node": [1, 2, 3]
}
现在相对 node 字段增加一个元素 4,restful 的接口该如何写。
1
fangchang 2017 年 8 月 1 日
post
/job/{id}/nodes content: 4 |
2
yujianwjj OP 你这个应该是将整个 nodes 字段替换为 4
|
3
gigantic222 2017 年 8 月 1 日 via iPhone
Post {id}/nodes/push 加个参数当作动作吧 然后 shift pop 什么的同理
|
4
gigantic222 2017 年 8 月 1 日 via iPhone
感觉还是直接 put 1,2,3,4 靠谱些
|
5
ansheng 2017 年 8 月 1 日
put
/job/{id}/ node=[1, 2, 3,4] |
6
mooncakejs 2017 年 8 月 1 日
put /job/{id}
{ "node": [1, 2, 3,4] } 如果要原子化 1 楼的吧 |
7
timwei 2017 年 8 月 1 日
1. 将 node 看做资源:
post /job/{id}/nodes 2. 将 job 看做资源,node 看做属性: put /job/{id} |
8
yujianwjj OP @gigantic222 restful 接口好像是不推荐加动作参数。
|
10
fangchang 2017 年 8 月 1 日 如果你要替换,那是对应的 put。
post 在我看来就是用来在此资源里创建并添加。 |
11
baiyi 2017 年 8 月 1 日
看你的逻辑需求
如果是创建一个 `node` 的话就用 `POST` 如果是更新 `job` , 就是 `PUT` 注意 `POST` 和 `PUT` 的区别 `PUT` 有幂等性, 也就是说多次请求的效果是相同的 所以说, 如果你的 `node` 里 `4` 这个值不能重叠的话, 也应该是 `PUT` |
12
wizardoz 2017 年 8 月 1 日
node 是资源,属性最好改为 nodes
put /job/1/nodes/4 |
13
paicha PRO POST /job/1/nodes/
|
14
otakustay 2017 年 8 月 1 日
不可重复的(每次都是把第 4 个位置更新)用 PUT /jobs/1/nodes/4
可以重复的(每次都在最后增加)用 POST /jobs/1/nodes |