自定义错误消息的rest API响应代码可以是400吗?

问题描述 投票:0回答:2

在restful API中,当响应自定义错误消息时,正确的响应代码是什么?例如“用户名不存在”

一位同事争论应该是代码 400 而不是 200

httpresponse http-response-codes
2个回答
0
投票

如果出现错误消息,那么状态肯定不是 200。根据原因,它可能是 4xx 或 5xx。您可以选择以下一些可能的状态代码:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status


0
投票

例如“用户名不存在”

正确答案是HTTP 404,找不到资源。

https://restfulapi.net/http-status-codes/

请注意,虽然您可以在正文中包含字符串响应,但这并不总是意味着您应该这样做。某些错误消息可能会泄露对恶意攻击者有用的数据。例如,假设您从名为“CustomIDP”的内部工具获得 JWT 断言,如果您做出以下响应。

CustomErrorException(status=401 UNAUTHORIZED, data="Missing the JWT token from CustomIDP, If you have issues call Jane Doe at ???-????-????)"

这显然是内部信息泄露,最好直接抛出 401 HTTP 响应。

© www.soinside.com 2019 - 2024. All rights reserved.