团队-我们在代码中使用422 HTTP Status Code for validations
进行HTTP GET
操作。但是不确定,是否可以使用get操作。 422 unprocessable
实体听起来更像是请求正文验证-请帮助
谢谢
答案 0 :(得分:1)
通常GET请求没有有效负载。我们使用GET从Server / DB检索数据,这些数据在创建或插入时已经过验证。这意味着我们在检索时无需验证数据。
如果我们有有效载荷,则应使用POST。我们可以根据需要将422或400与POST一起使用。
获取
GET方法意味着检索任何信息(以 实体)由Request-URI标识。如果请求URI指向 数据产生过程,应是产生的数据 作为响应中的实体返回,而不是 流程,除非该文本恰好是流程的输出。
POST
POST方法用于请求源服务器接受 请求中包含的实体作为资源的新下属 在请求行中由Request-URI标识。 POST旨在 允许采用统一的方法来覆盖以下功能:
- Annotation of existing resources; - Posting a message to a bulletin board, newsgroup, mailing list, or similar group of articles; - Providing a block of data, such as the result of submitting a form, to a data-handling process; - Extending a database through an append operation.
400(错误请求)状态代码表示服务器无法执行以下操作: 由于某些原因而无法处理请求
是客户端错误(例如,格式错误的请求语法,无效的请求
邮件框架或欺骗性请求路由)。
422(不可处理实体)状态代码表示服务器
了解请求实体的内容类型(因此,
415(不受支持的媒体类型)状态码不正确),并且
请求实体的语法正确(因此为400(错误请求)
状态代码不正确),但无法处理其中的内容 说明。例如,如果XML
,则可能发生此错误情况。 请求正文包含格式正确(即语法正确)的内容,但
语义错误的XML指令。在RFC 723x中找不到422
答案 1 :(得分:0)
422“无法处理的实体”更多地涉及语义错误,URI为 不是请求实体的一部分,因此422不适用。
答案 2 :(得分:0)
422的说明说
422(不可处理实体)状态代码表示服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此为400 (错误请求)状态代码不合适),但无法处理其中包含的说明。
相反,我认为这里更适合400种代码。
因此,可能有人争辩说它不适合语义错误。但是没有更多了。自2014年6月起,相关标准RFC 7231(取代了之前的RFC2616)在以下方面更广泛地使用了400(错误请求): 由于某些原因导致客户端错误,服务器无法或将不会处理请求
答案 3 :(得分:-2)
422无法处理的实体可以用于任何类型的请求。它不是特定于GET或POST或DDELETE。如果必须验证可以接受为请求的任何数据,并且必须验证任何前提条件,则可以引发HTTP 422。
例如。 GET调用中存在路径参数,即您所经过的年龄,在语法上是正确的,例如16,但是对于18岁以上的您的业务逻辑,因此在此处抛出400是不正确的。