Boolean 属性的值进行 update 操作,接口怎样设计比较好?

2015-04-29 17:36:38 +08:00
 khowarizmi

对一个 Boolean 类型的属性进行 update 操作,怎样设计接口比较合适?
以下是我想到的两种方式:

POST /site/:siteID/published
{ published: true}

POST /site/:siteID/published/active

大家都是怎么做的?

2682 次点击
所在节点    程序员
9 条回复
hahasong
2015-04-29 17:59:21 +08:00
POST /site/:siteID/set_published
{status : true/false}
Cee
2015-04-29 18:03:37 +08:00
published
unpublished
Charles0429
2015-04-29 18:46:27 +08:00
https://developer.github.com/v3/users/followers/#follow-a-user 贴一个github的例子,用POST和DELETE分别实现关注和取消关注。
khowarizmi
2015-04-29 18:53:15 +08:00
@Charles0429
你说的是在创建和删除关系的实例了,使用的 PUT 和 DELETE 方法。
我问的是,如何更新一个 Boolean 的属性。
raincious
2015-04-29 18:59:58 +08:00
@khowarizmi 他的意思应该是:

POST /site/:siteID/published // Set published => true
DELETE /site/:siteID/published // Set published => false

我倒是觉得
POST /site/:siteID/published
{ published: true}
这个方法挺好。那么纠结程序都写出来了。
khowarizmi
2015-04-29 19:10:28 +08:00
@raincious
那就先采用了传一个对象去更新属性吧,THX。
iyangyuan
2015-04-29 22:19:30 +08:00
首先,restful设计中,uri中不能出现动词,修改一般用put请求,至于如何传值,既然这个值是实体的一个属性,难么直接用实体去接收就好了,直接传对象的一个属性即可。
个人见解,仅供参考。
khowarizmi
2015-04-30 00:30:43 +08:00
@iyangyuan right,确实应该用 PUT
vampirekiss
2015-04-30 13:24:22 +08:00
PATCH /site/:siteID

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

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

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

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

© 2021 V2EX