我将使用NodeJS和Express框架开发一些REST API。用户API就是其中之一。但我很困惑,无法为API的每个场景发送正确的响应。发送响应HTTP状态的顺序如下:
GET / users HTTP / 1.1
400 Bad Request
检查网址是否格式错误。401 Unauthorized
检查是否未提供访问令牌403 Forbidden
检查访问令牌中的用户是否不允许查看这些资源200 OK
如果不是,则找到一条或多条记录GET / users /:id HTTP / 1.1
400 Bad Request
检查网址是否格式错误。422 Unprocessable Entity
检查ID是否未正确验证,例如非数字字符串401 Unauthorized
检查是否未提供访问令牌403 Forbidden
检查访问令牌中的用户是否不允许查看此实体404 Not Found
如果找不到请求200 OK
如果找到了正确的实体500 Internal Server Error
如果在实体查找期间MySQL或节点服务器端出现任何问题。POST / users HTTP / 1.1
415 Unsupported Media Type
检查标头Content-Type
是否不是application / json。400 Bad Request
检查JSON格式是否正确或是否存在语法错误401 Unauthorized
检查是否未提供访问令牌403 Forbidden
检查访问令牌中的用户是否不允许创建新实体422 Unprocessable Request
如果请求正文参数中的某些验证失败409 Conflict Issue
如果请求中的用户名或电子邮件不可用或已存在。200 OK with new entity Location Header
如果实体成功创建。500 Internal Server Error
如果在实体创建期间MySQL或节点服务器端存在任何问题。PUT / users /:id HTTP / 1.1
415 Unsupported Media Type
检查标头Content-Type
是否不是application / json。400 Bad Request
检查JSON格式是否正确或是否存在语法错误422 Unprocessable Entity
检查ID是否未正确验证,例如非数字字符串401 Unauthorized
检查是否未提供访问令牌403 Forbidden
检查访问令牌中的用户是否不允许更新此实体422 Unprocessable Request
如果请求正文参数中的某些验证失败409 Conflict Issue
如果请求中的用户名或电子邮件而不是此用户不可用或已存在。204 OK with no content
如果实体已成功更新。500 Internal Server Error
如果在实体更新期间MySQL或节点服务器端出现任何问题。DELETE / users /:id HTTP / 1.1
400 Bad Request
检查网址是否格式错误。422 Unprocessable Entity
检查ID是否未正确验证,例如非数字字符串401 Unauthorized
检查是否未提供访问令牌403 Forbidden
检查访问令牌中的用户是否不允许删除此实体404 Not Found
如果找不到请求204 OK with no content
如果实体已成功删除500 Internal Server Error
如果在实体删除期间MySQL或节点服务器端出现任何问题所以我想在Stackoverflow上讨论的是:
答案 0 :(得分:1)
以上所有状态代码现在都很好,除了Twitter在记录HTTP状态代码和其他问题的特定错误代码方面做得很好。有些绑定到HTTP状态代码,这很好,但很多都没有。有些还与相同的状态代码绑定,突出显示上面提出的问题。请查看以下文档。
希望这有帮助。