我们有一个单页面应用程序,它具有处理完整“新应用程序”所需的一系列表单。
“输入电子邮件”,“验证电子邮件”,“验证手机号码”等步骤
步骤的流程基于前一步骤,并且可以根据用户的旅程(他们来自哪里,他们提供什么等)而变化。
客户端命中/continue
端点时,服务器会编排此过程。
用户旅程可以变化,例如
Step 1 -> Step 2 -> Step 4 -> Step 5 -> Complete
Step 1 -> Step 2 -> Step 3 -> Complete
Step 1 -> Step 2 -> Step 3 -> Step 4 -> Step 5 -> Complete
在每一步中,/continue
端点将返回该过程的下一个所需步骤,直到没有剩下的步骤,此时它将解析204
。
当用户需要在继续之前完成操作时,我们通过在响应中发出requiredAction
告诉SPA要显示的页面
{
"requiredAction": "STEP_3"
}
问题是,从客户端请求更多东西的适当状态代码是什么?
我看到303
可能与specification一样,它声明:
表示重定向不链接到新上传的资源,而是链接到另一个页面,如确认页面或上传进度页面。
如果您希望客户端导航到您在Location
标头中提供的URL,则303是合理的响应。
如果你想返回客户端将要检查的数据,之后客户端将自己确定它需要做更多的事情,比如用某种复杂的请求点击/continue
URL,那么你返回的数据就是一个完整的响应要成功请求,您应该返回200状态代码。