与数据库不匹配的数据时的HTTP状态代码响应

时间:2019-11-06 07:26:27

标签: api http

我正在建立有关电子邮件身份验证代码的API

它的过程很简单。

  1. 输入随机代码(客户端浏览器)

  2. 请求输入代码。 (客户端浏览器)

  3. 接收请求(服务器)

  4. 扫描数据库(服务器)中的代码

  5. 没有匹配的代码(服务器)

  6. 使用status code返回响应。

有很多status code(2xx,4xx,5xx);

但是我不知道哪种状态码最适合这种情况。

1 个答案:

答案 0 :(得分:1)

这取决于您要发出请求的语义。例如:

  1. API应该搜索与查询匹配的项目,并返回结果列表,例如GET /codes?q=4ba69g。考虑一个“搜索页面”。在这种情况下,空结果[]是完全有效的结果;查询没有问题,只是没有返回任何匹配项。如果您想完全省略空白的响应正文,则为200 OK,或者为204 No Content

  2. 将代码视为资源,例如GET /codes/4ba69g。在这种情况下,缺少代码将导致404 Not Found

  3. 这是您要执行的操作,可能会失败,例如POST /login。如果用户提供了错误的凭据/代码,因此操作无法完成,则说明这是客户端错误,因此是400 Bad Request