RFC 7232 Section 3.4说明以下内容:
除非在下面排除,否则收件人缓存或源服务器必须 成功后评估收到的请求前提条件 执行正常的请求检查,就在它执行之前 与请求方法关联的操作。服务器必须忽略 所有收到的先决条件,如果它对同一请求的回应 没有这些条件将是一个除了a之外的状态代码 2xx(成功)或412(前提条件失败)。
我的API会在调用之前执行实体验证,以便将其持久保存到数据库中。这可能导致服务器回复422(或其他4xx)。
同样,我的验证层可以通过并且数据库验证可能会失败(我可能无法检查外键的某些错误),这会产生5xx。
如果我正确阅读了RFC,那么任何我可以预期的响应就像我的验证将返回4xx应该出现之前我检查前提条件。是吗?
但是我的实际例外情况(可能会返回5xx)无法预先检查。