网站的前后端通信,往往会有异步请求,这时应该怎么设计 API? 我最近读到一篇文章,作者介绍了他的做法,设计得很精细,我觉得值得借鉴,可以当作异步 API 的标准设计。 一、同步 API为了便于比较,先看看同步 API 的设计。下面是一个很简单的例子。 客户端发出一个请求,要求创建资源。
服务器回应 201。
二、异步请求如果服务器不能立即返回结果,就形成了异步操作。 客户端的请求还是一样的。
服务器回应 202。
除了上面的头信息,服务器的回应如果有数据体,可以返回一些有效信息(比如任务完成的估计时间、当前状态等等)。 三、查询进展过了一段时间,客户端就发出请求,查询异步处理的进展。 服务器回应 200。
四、异步操作成功有一种特殊情况,用户查询异步操作的进展的时候,可能会希望,如果异步操作已经完成,就直接跳转到新资源。 这时,服务器回应 303。
五、删除查询链接一旦异步操作完成,客户端可以要求服务器删除查询链接。
服务器回应 204。
如果客户端不删除查询链接,服务器完成异步任务后,也可以自动删除。客户端再请求这个链接,服务器回应 (完) |
|
来自: goodwangLib > 《REST》