应使用哪些 HTTP 错误代码来指示内部错误?

发布于 2024-12-16 19:19:57 字数 170 浏览 2 评论 0原文

我开发了一个 REST 应用程序,我的应用程序的情况之一是:

用户在服务器端进行操作。一切顺利,服务器正确接受数据,但是发生了一些错误,就像与数据库通信一样。我不想返回错误代码,我想发送成功代码,但有一个指示错误的正文。我想发送 500、404 等错误代码。我的设计是否正确?我应该为我的案例返回哪个状态代码?

I have developed a REST application and one of my application's case is that:

User makes an operation at server side. Everything goes well server accepts data correctly however some error occurs as like communicating with database. I don't want to return it with an error code I want to send it with a success code but has a body that indicates error. I want to send error codes for 500, 404 and etc. Is my design is correct and which status code should I return for my case?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

土豪 2024-12-23 19:19:57

在这种情况下,某种 5xx 错误是最合适的。

500 表示某种内部服务器错误,

503 表示服务不可用

在此处查找 HTTP/1.1 的所有错误代码 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

如果合适的话,您应该始终为休息服务返回错误代码。返回成功代码但在响应中添加错误并不是正确的做法。

Some kind of 5xx error would be the most appropriate in this case.

500 for some kind of internal server error or

503 for service unavailable

Look here for all the error codes for HTTP/1.1 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

You should always return an error code for your rest service if this is appropriate. Returning a success code but putting an error in your response isn't the right thing to do.

醉梦枕江山 2024-12-23 19:19:57

这可能会有所帮助: http://www.w3.org/Protocols/rfc2616/rfc2616 -sec10.html - 在某些地方可能不明确,但总体而言在我看来很容易阅读。

That might help: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html - can be ambiguous at some places, but overall an easy read IMO.

爱情眠于流年 2024-12-23 19:19:57

您可以在 rfc2616 查看状态定义,

我曾经实现休息应用程序,我总是返回一个状态代码和一条包含有关错误的更多信息的消息。

是的,对于数据库问题,503(服务不可用)

有很多关于这种类型的问题 stackoverflow 上的主题...

You can check the status definition at the rfc2616

I used to implement rest aplication and I always returned a statuscode and a message with more info about the error.

And yeah for a problem with a database a 503 (service unavailable)

There are a lot of questions about this kind of topic at stackoverflow...

盛夏已如深秋| 2024-12-23 19:19:57

如果服务器的操作可以从此类数据库故障中恢复而无需用户干预(例如使用某些后台“清理进程”),那么成功状态代码可能是正常的;否则,返回服务器端错误状态代码 (5xx) 更有意义。

If the server's operation can recover from such a DB failure without the user's intervention (e.g. using some background "cleanup-process") then a success status code might be OK; otherwise, it makes more sense to return a server-side error status code (5xx).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文