rest - 如果客户端请求由于某些业务逻辑而无法完成,服务器应该返回什么 HTTP 状态代码?

标签 rest api http

我有一个在浏览器中工作并使用 REST API 后端的聊天应用程序。它具有以下业务逻辑规则:

  • 用户可以与任何其他用户开始聊天 session
  • 一个用户同时只能参加一个聊天 session
  • 如果 userAuserB已经开始聊天 session , session 是
    当前处于事件状态,则如果 userC尝试开始聊天 session
    要么 userAuserB服务器应该阻止并返回一些
    userC 的一种错误

  • 我的问题是这个错误的合适的 HTTP 状态代码是 userC应该收到?

    这不是客户端的错,因此 4xx 代码似乎不合适。

    这不是服务器错误,因此 5xx 代码似乎也不合适。

    我将发送带有附加 JSON 信息消息的响应正文,说明为什么请求失败,但是满足 RESTful 原则的适当 HTTP 状态代码是什么?

    最佳答案

    409这里听起来最合适。 409通常用于请求在其他方面有效但由于服务器/某些其他资源的当前状态而无法满足的情况。如果“其他状态”发生变化,则请求可能再次有效。

    我写了更多关于 409 Conflict这里:https://evertpot.com/http/409-confict

    关于rest - 如果客户端请求由于某些业务逻辑而无法完成,服务器应该返回什么 HTTP 状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61484154/

    相关文章:

    windows - 使用 Windows API 处理内存转储

    json - GraphQL 和 rest api 有什么区别

    http - 浏览器如何下载图像和其他二进制文件?

    rest - http post - 如何发送授权 header ?

    android - 从 Retrofit2 调用 Web 请求时如何解决致命异常?

    给定名称流行度的 API

    C++ 向 Web 服务器发送数据

    ios - 来自 iOS 的 Restful post API

    php - 公共(public)端点和私有(private)端点是否应该有单独的 API?

    python - 解析 XML 对象 Python 3.4