我开发了一个 REST 应用程序,我的应用程序的一个案例是:
用户在服务器端进行操作。一切顺利,服务器正确接受数据,但是发生了一些错误,就像与数据库通信一样。我不想用错误代码返回它我想用成功代码发送它,但有一个指示错误的正文。我想发送 500、404 等的错误代码。我的设计是否正确,我应该为我的案例返回哪个状态代码?
我开发了一个 REST 应用程序,我的应用程序的一个案例是:
用户在服务器端进行操作。一切顺利,服务器正确接受数据,但是发生了一些错误,就像与数据库通信一样。我不想用错误代码返回它我想用成功代码发送它,但有一个指示错误的正文。我想发送 500、404 等的错误代码。我的设计是否正确,我应该为我的案例返回哪个状态代码?
在这种情况下,某种 5xx 错误是最合适的。
500 表示某种内部服务器错误或
503 服务不可用
在此处查找 HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html的所有错误代码
如果合适的话,你应该总是为你的休息服务返回一个错误代码。返回成功代码但在响应中添加错误不是正确的做法。
如果服务器的操作可以在没有用户干预的情况下从这种数据库故障中恢复(例如,使用一些后台“清理进程”),那么成功状态码可能是 OK 的;否则,返回服务器端错误状态代码 (5xx) 更有意义。
这可能会有所帮助:http ://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - 在某些地方可能会模棱两可,但总的来说是一个易于阅读的 IMO。
您可以在rfc2616检查状态定义
我曾经实现过休息应用程序,我总是返回一个状态码和一条消息,其中包含有关错误的更多信息。
是的,数据库出现问题 503(服务不可用)
在stackoverflow上有很多关于这种主题的问题......