hackingwu
V2EX  ›  程序员

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

By hackingwu at 2020 年 9 月 21 日 · 2572 次点击

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

7 条回复  •  2020-09-22 10:55:21 +08:00
chinvo
   1
chinvo  
   2020 年 9 月 21 日
用 PATCH

PUT 就是覆盖

而一般来说接口要避免路径过长
chinvo
   2
chinvo  
   2020 年 9 月 21 日
chendy
   3
chendy  
   2020 年 9 月 21 日
PUT /obj/{id}/_confirm 自定义一个动词就行了
Oktfolio
   4
Oktfolio  
   2020 年 9 月 21 日
Patch 修改部分值可以使用 Json Patch 。

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

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

PATCH /obj/{id}/

{
"is_confirmed": true
}
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 40ms · 3.9.8.5