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