payment
时,接受
POST
的
payment methods
端点应该拒绝请求。在这种情况下,正确的 HTTP 状态代码是什么?
当系统本身无法达到请求所要求的状态并且必须先完成另一个请求(创建支付方式)时,正确的 HTTP 状态代码是什么?
我查看了
428 Precondition Required
,但这似乎与标头有关,而不是与系统状态有关。
我会简单地选择
400 Bad Request
。如果您需要在响应中提供更具体的说明或提示,您可以返回一个正文,它将指示错误的确切性质。
您不需要为所有内部业务相关的错误案例分配特定的 HTTP 错误代码。事实上,这可能无论如何都是不可能的。
400 规范:https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1
相关引述:
表示服务器由于被认为是客户端错误而无法或不会处理请求
关于
4xx
代码的一般情况:
服务器应该发送包含错误情况解释的表示,以及它是临时还是永久的情况
您是否查看了错误 424 Failed_Dependency?我想这可能就是你想要的。
见 http://www.restpatterns.org/HTTP_Status_Codes/424_-_Failed_Dependency
您可以考虑使用
422 Unprocessable Content
。
同时它看起来几乎和
400 Bad Request
一样。