考虑使用需要很长时间的方法的Web API。客户端可以发出同步请求并等待响应,也可以发出异步请求并接收标准202 Accepted
响应和状态链接。
在RESTful语义下,这两个选项是否应该作为两个单独的URI存在,还是它们应该是相同的URI,并且在头参数中有异步的选项?
答案 0 :(得分:1)
他们不一定需要有单独的网址。您的RESTful服务如何运作和响应取决于您。请求由以下内容定义:
请求类型(例如PUT与POST)和一些标头(例如缓存)上存在标准。有效载荷格式也可以由Content-Type标头定义。但是,没有特定的REST相关规则,您必须使用某些URL结构。显然它需要是一个有效的URL,但它的结构完全取决于你作为服务开发人员。
如果您想让调用者选择是同步还是异步处理,我会为了清晰起见而使用不同的URL。
e.g。
注意:出于清晰的原因,我在这里使用正斜杠来表示伪目录名称,但即使这在技术上也不是必需的。
如果需要,您也可以使用自定义标题,但您需要自己定义API。
如果要在服务器端进行异步/同步选择(可能基于当前服务器负载),则可以在单个URL中实现这两者。您应该确保您的API具有清晰的文档,以便开发人员了解这两种响应格式。
答案 1 :(得分:0)
考虑到这些原因,我会将它分成不同的 URL(我相信其他人会发现更多):