繁体   English   中英

用于字段验证的 REST api

[英]REST api for field validation

我必须创建几个 Web 服务来验证给定字段的可能值。 我正在考虑有这样的事情:

POST /entity/fieldName body { fieldValues }

如果参数无效,POST 将返回 400(错误请求),否则返回 422(不可处理实体)。 但是我不太喜欢 422 响应部分,因为它使请求总是返回错误。 另一方面,由于我只是在做验证并且这是一个 POST,我不想在服务器上实际创建一个新资源(即返回 200)。 是否有另一个更适合此的 HTTP 方法/API 端点? 对于它的价值,我将检查带有<fieldName>的实体字段是否在给定范围内具有其值。

如果您所做的只是验证,那么我认为您应该发送422验证错误和200验证成功。 POST 并不意味着您必须始终创建一个新实体。

POST 方法执行的操作可能不会产生可由 URI 标识的资源。 在这种情况下,200(正常)或 204(无内容)是适当的响应状态,具体取决于响应是否包含描述结果的实体。

如果在源服务器上创建了资源,则响应应该是 201(已创建)并包含一个实体,该实体描述请求的状态并引用新资源,以及一个位置标头(参见第 14.30 节)。

我更喜欢谷歌的 api 错误响应风格

所以我的服务将错误响应作为 json 或 xml 和400 Bad request错误代码发送:

{
  "status": "INVALID_REQUEST",
  "type": "ERROR_MSG",
  "data": {
    "request": "/v2/data?age=23d",
    "errors": [
      "age: not a number"
    ]
  },
  "time": -1
}

否则200和相应的消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM