gpt4 book ai didi

rest - 对 RESTful API 的异步请求是否应该有一个单独的 URI?

转载 作者:行者123 更新时间:2023-12-01 05:07:30 26 4
gpt4 key购买 nike

考虑一个需要很长时间的方法的 Web API。客户端既可以发出同步请求并等待响应,也可以发出异步请求并接收标准 202 Accepted响应和状态链接。

在 RESTful 语义下,这两个选项应该作为两个单独的 URI 存在,还是应该是相同的 URI,并且在 header 参数中带有异步选项?

最佳答案

他们不一定需要有单独的 URL。 您的 RESTful 服务如何运行和响应取决于您。请求定义为:

  • 请求类型
  • URL(包括参数)
  • 标题
  • 有效载荷

  • 请求类型(例如 PUT 与 POST)和一些 header (例如缓存)存在标准。负载格式也可以由 Content-Type header 定义。但是,没有特定的 REST 相关规则规定您必须使用某些 URL 结构。显然,它需要是一个有效的 URL,但它的结构完全取决于您作为服务开发人员。

    如果你想让调用者选择同步还是异步处理它,为了清楚起见,我会选择不同的 URL。

    例如
  • /some/dir/service1?process=async
  • /some/dir/service1?process=sync

  • 注意:为了清楚起见,我在这里使用正斜杠来表示伪目录名称,但即使这在技术上也不是必需的。

    如果需要,您也可以使用自定义 header ,但您需要自己定义 API。

    如果您想在服务器端进行异步/同步选择(可能基于当前服务器负载),您可以在单个 url 中实现两者。您应该确保您的 API 具有清晰的文档,以便开发人员了解这两种响应格式。

    关于rest - 对 RESTful API 的异步请求是否应该有一个单独的 URI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27475608/

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