Dec*_*ler 5 rest http-status-codes http-response-codes
对于我正在开发的 REST API,客户可以注册一家公司,随后需要通过电子邮件进行确认/激活。收到以下示例请求后,将发送一封电子邮件,其中包含激活链接,以激活帐户。
POST /companies HTTP/1.1
<company>
<name>CoolCompany</name>
<email>coolcompany@example.com</email>
</company>
Run Code Online (Sandbox Code Playgroud)
如果上述请求成功(有效数据,电子邮件成功发送),公司资源将保存在数据库中,但只有在/companies/<id>收到确认后(给定适当的授权标头)才可用。
鉴于这种情况,是
HTTP/1.1 202 Accepted
// Perhaps optionally with a Location header,
// of where the resource will be available, as well?
Location: /companies/<id>
Run Code Online (Sandbox Code Playgroud)
适当的回应?或者会
HTTP/1.1 201 Created
Location: /companies/<id>
Run Code Online (Sandbox Code Playgroud)
是更合适的回应?
REST 是一个基于实体的概念。如果我收到 201 Created 响应,这会直观地表明该资源已创建并且可用,但本例并非如此。资源在确认后首先可用,因此我建议使用 202 Accepted 标头。
此外,您无法确定用户是否在请求时间收到了电子邮件。我喜欢在此类情况(短信、电子邮件等)中使用 202 Accepted,因为它告诉 API 使用者这是一个有效的请求,但可能需要一些时间才能完成。
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |