如何确定RESTAPI响应生命周期

如何确定RESTAPI响应生命周期,rest,http,express,Rest,Http,Express,我将用NodeJS和Express框架开发一些restapi。用户API就是其中之一。但是,对于API的每一个场景,我都不知道如何发送正确的响应。我确定的发送响应HTTP状态的顺序如下: GET/users HTTP/1.1 400错误请求检查URL是否格式错误 401未经授权检查是否未提供访问令牌 403禁止检查是否不允许访问令牌中的用户查看这些资源 200正常如果没有,则找到一条或多条记录 GET/users/:id HTTP/1.1 400错误请求检查URL是否格式错误 422不可处理实体

我将用NodeJS和Express框架开发一些restapi。用户API就是其中之一。但是,对于API的每一个场景,我都不知道如何发送正确的响应。我确定的发送响应HTTP状态的顺序如下:

GET/users HTTP/1.1

  • 400错误请求
    检查URL是否格式错误
  • 401未经授权
    检查是否未提供访问令牌
  • 403禁止
    检查是否不允许访问令牌中的用户查看这些资源
  • 200正常
    如果没有,则找到一条或多条记录
  • GET/users/:id HTTP/1.1

  • 400错误请求
    检查URL是否格式错误
  • 422不可处理实体
    检查ID是否未正确验证,例如非数字字符串
  • 401未经授权
    检查是否未提供访问令牌
  • 403禁止
    检查是否不允许访问令牌中的用户查看此实体
  • 404未找到
    如果未找到请求的
  • 200正常
    如果正确找到实体
  • 500内部服务器错误
    如果在实体查找期间MySQL或节点服务器端出现任何问题
  • POST/users HTTP/1.1

  • 415不支持的媒体类型
    检查标题
    内容类型
    是否为application/json
  • 400错误请求
    检查JSON格式是否不正确或是否存在语法错误
  • 401未经授权
    检查是否未提供访问令牌
  • 403禁止
    检查访问令牌中的用户是否不允许创建新实体
  • 422无法处理的请求
    如果请求正文参数中的某些验证失败
  • 409冲突问题
    如果请求中的用户名或电子邮件不可用或已经存在
  • 200如果实体创建成功,则使用新实体位置标题确定
  • 500内部服务器错误
    如果在实体创建过程中MySQL或节点服务器端出现任何问题
  • PUT/users/:id HTTP/1.1

  • 415不支持的媒体类型
    检查标题
    内容类型
    是否为application/json
  • 400错误请求
    检查JSON格式是否不正确或是否存在语法错误
  • 422不可处理实体
    检查ID是否未正确验证,例如非数字字符串
  • 401未经授权
    检查是否未提供访问令牌
  • 403禁止
    检查访问令牌中的用户是否不允许更新此实体
  • 422无法处理的请求
    如果请求正文参数中的某些验证失败
  • 409冲突问题
    如果请求中的用户名或电子邮件而不是此用户不可用或已存在
  • 204如果实体更新成功,则无内容正常
  • 500内部服务器错误
    如果在实体更新期间MySQL或节点服务器端出现任何问题
  • 删除/users/:id HTTP/1.1

  • 400错误请求
    检查URL是否格式错误
  • 422不可处理实体
    检查ID是否未正确验证,例如非数字字符串
  • 401未经授权
    检查是否未提供访问令牌
  • 403禁止
    检查访问令牌中的用户是否不允许删除此实体
  • 404未找到
    如果未找到请求的
  • 204无内容正常
    如果实体删除成功
  • 500内部服务器错误
    如果在实体删除过程中MySQL或节点服务器端出现任何问题
  • 因此,我想讨论的是Stackoverflow:

  • 上述步骤的顺序是否正确或需要重新思考
  • 这个API会在任何导致最终用户看到非JSON响应的场景中出现吗

  • 最重要的是,所有的状态代码现在都很好,除了Twitter在记录HTTP状态代码和其他问题的特定错误代码方面做得很好。有些绑定到HTTP状态码,这很好,但许多绑定到HTTP状态码。有些还绑定到相同的状态代码,突出显示了上面提出的问题。请查看下面的文档


    希望这有帮助。

    这不是讨论的论坛。写它和测试它应该能回答你的问题,那么就这么做吧。我知道,但我想知道正确的方法。你知道并写了它吗?那更糟!