繁体   English   中英

在RESTful API集合上进行PUT的利弊

[英]Pros and Cons of having PUT on Collections for RESTful APIs

背景

我正在制作RESTful API,并且像大多数API一样,我拥有Elements和Collections。 在这种特定情况下,我具有以下端点:

  • /api/v1/Countries GET //获取/api/v1/Countries集合
  • api/v1/Countries POST //将新国家api/v1/Countries添加到集合中
  • api/v1/Countries/:id GET //获取具有给定ID的api/v1/Countries/:id的信息

问题

因此,我的API允许用户添加和检查国家/地区的信息。 但是,如果我想更新它怎么办?

为此,我知道我必须使用PUT (暂时不考虑PATCH )。

有两种方法可以做到这一点:

  • api/v1/Countries PUT //更新国家列表
  • api/v1/Countries/:id PUT //更新具有指定ID的国家

在我的阅读中,这是我发现的:

  • 倡导两者都使用的人说,它具有灵活性,因为在集合中具有PUT将允许用户立即更新多个Country元素。

  • 反对两者都使用的人说,这样您将拥有一个API,那么多个端点将做同一件事(因为您现在可以通过集合或元素来更新一个国家),这是API设计中的一个主要错误。 。

  1. 我还有其他优点/缺点吗?
  2. 是否有明确的“您应该以这种方式进行”回答,或者取决于?
  3. 如果我必须选择其中一个,则应在哪种情况下使用“集合”方法,在哪种情况下应使用“元素”方法?
  4. (OPT)您将如何做?您会推荐哪些文献?
  1. 我认为您已经想到了所有重要事项。
  2. 当然不是,这是一个基于观点的问题。
  3. 我只会去api/v1/Countries/:id的PUT,只是因为我发现让用户立即对整个集合进行中间化很危险。

只需按照您感到更舒适的方式进行,那将是最好的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM