RESTAPI响应代码

RESTAPI响应代码,rest,api,response,Rest,Api,Response,我正在尝试设计一些RESTAPI 一个功能是,对于来自客户端的创建资源的请求,服务应该做两件事 在一个系统(s1)上创建资源 将此数据与其他系统同步(s2) 然后,客户端将访问s2以读取数据。一种可能的情况是在s1上创建资源,但与s2的同步失败 现在,从服务的角度来看,请求部分成功,因此可以使用带有multistatus主体的响应代码207,但从客户端的角度来看,资源尚不可用,因此这是一个失败(状态-5xx) 现在,在设计API时应该考虑哪个角度?我最终实现这一点的方式是使处理异步化。一旦客户机

我正在尝试设计一些RESTAPI

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

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

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


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

    我最终实现这一点的方式是使处理异步化。一旦客户机发送请求,服务就会持久化该请求,为该请求生成一个新的事务id,并返回一个202响应,该响应带有一个包含url的位置头,用于查询事务状态。然后它尝试异步处理请求(在s1上创建资源并将其同步到s2)。同时,客户端可以继续检查事务状态,这将继续发送“进行中”状态。处理请求后,事务状态立即更新为“成功”。在客户机的下一次查询中,返回成功状态,然后客户机可以继续进行。

    在成功的数据验证之后,请求被接受(s1),但更多的处理被挂起(s2),因此HTTP 202?