Restful 接口,给某个对象的单个字段赋值,如何设计

2020-09-21 17:30:19 +08:00
 hackingwu

有一个接口的功能是”确认“某个对象。 我的 Restful API 设计成 PUT /obj/{id}/is_confirmed/{is_confirmed} String id, boolean is_confirmed 这个接口符合 Restful 规范吗? 类似的 URL 你们怎么设计?

1691 次点击
所在节点    程序员
7 条回复
chinvo
2020-09-21 17:33:11 +08:00
用 PATCH

PUT 就是覆盖

而一般来说接口要避免路径过长
chinvo
2020-09-21 17:34:28 +08:00
chendy
2020-09-21 17:51:54 +08:00
PUT /obj/{id}/_confirm 自定义一个动词就行了
Oktfolio
2020-09-21 18:29:31 +08:00
Patch 修改部分值可以使用 Json Patch 。

至于上述这种接口,可以单独开一个,没必要完全遵照 REST 来定义接口,好用直观就行。

接口最好使用 "-" 而不是 "_" 噢。
chinvo
2020-09-21 19:57:21 +08:00
@chendy #3 自定义动词各家实现不太一样, Google 家为了避免和次级资源名冲突(或造成误解), 用的是 PUT /obj/{id}:confirm 这种形式
rbut
2020-09-22 09:20:12 +08:00
@Oktfolio 为什么是最好使用"-"呢
wizardoz
2020-09-22 10:55:21 +08:00
不符合,用 PATCH 方法就行

PATCH /obj/{id}/

{
"is_confirmed": true
}

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/709116

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX