V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
khowarizmi
V2EX  ›  程序员

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

  •  
  •   khowarizmi · 2015-04-29 17:36:38 +08:00 · 2523 次点击
    这是一个创建于 3282 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    POST /site/:siteID/published/active

    大家都是怎么做的?

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

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

    我倒是觉得
    POST /site/:siteID/published
    { published: true}
    这个方法挺好。那么纠结程序都写出来了。
    khowarizmi
        6
    khowarizmi  
    OP
       2015-04-29 19:10:28 +08:00
    @raincious
    那就先采用了传一个对象去更新属性吧,THX。
    iyangyuan
        7
    iyangyuan  
       2015-04-29 22:19:30 +08:00 via iPhone   ❤️ 1
    首先,restful设计中,uri中不能出现动词,修改一般用put请求,至于如何传值,既然这个值是实体的一个属性,难么直接用实体去接收就好了,直接传对象的一个属性即可。
    个人见解,仅供参考。
    khowarizmi
        8
    khowarizmi  
    OP
       2015-04-30 00:30:43 +08:00
    @iyangyuan right,确实应该用 PUT
    vampirekiss
        9
    vampirekiss  
       2015-04-30 13:24:22 +08:00
    PATCH /site/:siteID
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1239 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:28 · PVG 07:28 · LAX 16:28 · JFK 19:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.