加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 09:41:02 所属栏目:asp.Net 来源:网络整理
导读:考虑使用需要很长时间的方法的Web API.客户端可以发出同步请求并等待响应,也可以发出异步请求并接收标准的202 Accepted响应和状态链接. 在RESTful语义下,这两个选项是否应该作为两个单独的URI存在,还是它们应该是相同的URI,并且在头参数中有异步的选项? 解
考虑使用需要很长时间的方法的Web API.客户端可以发出同步请求并等待响应,也可以发出异步请求并接收标准的202 Accepted响应和状态链接.

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

解决方法

他们不一定需要有单独的URL.您可以自行决定RESTful服务的运行和响应方式.请求由以下内容定义:

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

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

如果您想给调用者选择是同步还是异步处理,我会为了清晰起见而使用不同的URL.

例如

> / some / dir / service1?process = async
> / some / dir / service1?process = sync

注意:出于清晰的原因,我在这里使用正斜杠来表示伪目录名称,但即使这在技术上也不是必需的.

如果需要,您也可以使用自定义标题,但您需要自己定义API.

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读