gpt4 book ai didi

rest - 为什么不将 PUT 用于需要有效负载的 REST 查询?

转载 作者:行者123 更新时间:2023-12-04 15:42:25 36 4
gpt4 key购买 nike

REST 建议 查询 (不是资源创建)通过 GET 方法完成。在某些情况下,查询数据太大或结构化导致难以放入 URL,为了解决这个问题,RESTful API 被修改为支持使用主体的查询。

似乎需要主体的 RESTful 查询的约定是使用 POST。这里有一些例子:

  • Dropbox API
  • ElasticSearch
  • 奥莱利 Restful Web Services Cookbook

  • 查询不会修改系统的内部状态,但 POST 不支持幂等操作。但是,PUT 是幂等的。对于需要正文的查询,为什么 RESTful API 不使用带有正文的 PUT 而不是 POST?

    注意: A popular question询问哪个(PUT 与 POST)是创建资源的首选。这个问题询问为什么 PUT 不用于需要主体的查询。

    最佳答案

    PUT可能是幂等的,但它也有特定的含义。 PUT 中的请求正文应该用于替换 URI 中的资源。

    POST没有做出这样的假设。并注意使用 POST request 意味着请求可能不是幂等的,在特定情况下它仍然可能是幂等的。

    但是,您可以使用 PUT 来做到这一点。 ,但它需要你跳过一个额外的箍。基本上,您可以使用 PUT 创建一个“查询资源”。 ,然后使用 GET之后立即获取此查询资源的结果。也许这就是您所追求的,但这是最 RESTful 的,因为结果查询结果仍然可以链接到。 (如果您使用 POST 请求,则完全缺少某些东西)。

    关于rest - 为什么不将 PUT 用于需要有效负载的 REST 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33219851/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com