ReST API响应代码

时间:2017-05-19 08:55:35

标签: rest api response

我正在尝试设计一些ReST API。

一个功能是客户端创建资源的请求,服务应该做两件事

  1. 在一个系统上创建资源(s1)
  2. 将此数据与其他系统同步(第2条)。
  3. 然后客户端将访问s2以读取数据。可能的情况是在s1上创建资源但是到s2的同步失败。

    现在,从服务的角度来看,请求部分成功,因此可以使用具有多状态主体的响应代码207,但从客户端的角度来看,资源尚不可用,因此这是一个失败(状态 - 5xx)。

    现在在设计API时应该考虑哪个角度?

1 个答案:

答案 0 :(得分:0)

我最终实现这一点的方法是使我的处理异步。一旦客户端发送请求,服务就会持久保存请求,为此请求生成新的事务ID,并发回202响应,其中包含用于查询事务状态的url的位置标头。然后它尝试异步处理请求(在s1上创建资源并将其同步到s2)。同时客户可以继续检查交易状态,这将继续发送"进行中"州。处理完请求后,交易状态将更新为" success"。在客户端的下一个查询中,返回成功状态,然后客户端可以继续前进。