我可以仅对所有方法使用POST和GET吗?

时间:2020-01-23 08:28:15

标签: rest api http https backend

哪个更好?为什么?

对所有API使用POSTGET HTTP动词,或同时使用PUTPATCHDELETE

1 个答案:

答案 0 :(得分:1)

重要的是,有人可能会说,这个答案是关于语义和api开发人员的便利性而写的。我建议看一下this article以获得tl; dr /更好的解释,并了解等幂方法与非幂等方法,以及某些类似于this one

的stackoverflow问题

从本质上说,没有什么比什么都好。您不妨对所有内容都使用POST,何必麻烦呢。但是,即使对于同一路径,请求的语义和总体目的也可能有所不同。

考虑api,提供对图书库的订阅。现在,让我们假设在编写它时,我们声明/ library / subscription是端点的路径。现在,如果你只是 使用POST和GET,您只能获得或添加订阅。如果以后要删除,则可以通过其他参数,标头,创建新端点和其他解决方法来进行删除。事实是,当您可以遵循开发api的正常路径并为相同路径声明处理程序,但对于DELETE方法/

时,您将思考并创建某种方法。

我之所以推荐文章,主要是因为我有偏见。我最讨厌的是在帖子正文中显示要删除内容的意图的方法(是的,在该字段中看到过类似的几种api),因为您永远无法确定api在日志中正在做什么,因此您不容易检查某些客户端是否在一段时间内从访问日志中删除/创建了某些内容。