发布条件检查http状态

时间:2016-05-30 12:54:17

标签: rest validation http-status-code-422

使用以下API:

feed?url=XXX

对参数url执行的验证:

  1. 如果遗失:400 Bad Request
  2. 如果网址为空/无效:422 Unprocessable Entity
  3. 如果网址没有指向有效的 RSS / Atom Feed: 422 ??
  4. 应该为3返回什么状态错误。

    与验证 2。不同,在不提取数据并尝试解析数据的情况下无法检查 3。,因此原始用户数据无法直接验证。

    我在考虑422 Unprocessable Entity,因为它与验证有关,即使不是直接数据(url),也包括此数据的引用(url的内容)。

    您有什么看法?

1 个答案:

答案 0 :(得分:0)

422不适合#2和#3。它与服务器理解Content-Type标头有关,但无法解释HTTP请求正文中的实际内容。

我认为你可以在这里提出502 Bad Gateway适合的论点。这有点奇怪,因为问题是两个用户错误(传入的url参数,所以4xx代码),但它也发生在服务器上,特别是原始服务器(这有意义一个5xx,特别是502)。

但是如果在这种情况下你严格认为这是客户端造成的问题(网址中输入错误)而不是服务器端,那么我会说没有足够的错误代码,你可能应该只需坚持400就可以了。

也许..也许你可以说409这可能在这里工作的论点。 409可用于以下情况:

  1. HTTP请求perse没有特别的错误。
  2. 但是另一个资源的状态导致请求失败。
  3. 通常,“其他资源”存在于同一系统中,但我不明白为什么外部Atom源也不会被视为冲突。

    因为如果外部服务器上的Atom提要是“固定的”,那么用户创建的原始HTTP请求现在将起作用。所以409类型适用于此。