【问题标题】:Can I just use POST and GET for all methods? [closed]我可以对所有方法都使用 POST 和 GET 吗? [关闭]
【发布时间】:2020-05-09 11:17:17
【问题描述】:

哪个更好?为什么?

对所有 API 使用 POSTGET HTTP 动词,或者也使用 PUTPATCHDELETE

【问题讨论】:

  • 一个不比另一个好,每个都有自己独特的用途。您需要努力了解它们是什么。
  • 值得注意的是,HTML 仅支持 GET 和 POST,而万维网取得了灾难性的成功。

标签: rest api http https backend


【解决方案1】:

重要的是要注意,有人可能会说,这个答案是针对语义和 api 开发人员的方便而写的。我建议查看 this article 以获得 tl;dr/更好的解释,以及检查幂等方法与非幂等方法,以及类似于 this one 的某些 stackoverflow 问题

没有什么比什么都好。你也可以使用 POST 来处理所有事情,何必呢。但是即使对于相同的路径,请求的语义和总体目的也可能不同。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2020-05-11
    • 1970-01-01
    相关资源
    最近更新 更多