适用的HTTP状态代码,适用于每个用户只允许一次提交的情况

时间:2015-10-21 15:41:39

标签: api rest http-status-code-403 http-status-codes

我正在为我的API设计一个端点,每个用户只允许一次提交。在阅读规范并试图找到最佳响应后,我犹豫是否计划在用户尝试提交第二个时使用 403 - Forbidden

  

10.4.4 403禁止

     

服务器理解请求,但拒绝履行请求。   授权无效,请求不应重复。如果   请求方法不是HEAD,服务器希望公开   为什么请求没有得到满足,它应该描述原因   因为该实体的拒绝。如果服务器不想做   此信息可供客户使用,状态代码404(不是   找到了)可以代替使用。

我总是留下这样的感觉,虽然403s意味着访问响应 - 不一定是回应状态问题的东西。它是否正确?或者我应该在这里使用更好的状态代码吗?

1 个答案:

答案 0 :(得分:1)

我总是403有授权/身份验证问题,所以我有点疑惑;)以下是我考虑的代码列表:

  • 403 Forbidden - (如上所述)
  • 409 Conflict - 由于资源处于无法更改的给定状态,因此也可以通知用户有关问题的良好状态。

只是好奇心:

  • 410 Gone - 请求只能发送一次,因此端点可能无法用于后续请求。我不认为这是个好主意,因为端点仍然可用,但不会处理来自特定用户的请求。嗯..可能被认为很奇怪。

我保证403409,最终会使用409429似乎不是一个好主意,因为它与网络(宽带,吞吐量)问题相关,而不是与资源本身相关。