假设HTTP服务器使用400响应代码响应POST
,因为该请求未通过验证(例如,未找到电子邮件地址)。如果服务器希望向客户端提供有关错误性质的更多信息,则应如何返回此信息?对于请求中使用的每个可能的内容类型,理想情况下是否应该有一个关联的“错误”内容类型?
例如,给定请求
POST /users
Content-Type: application/x-myuser
{
"email": "foo@example.com",
"name": "Michael"
}
响应可能是
400 Bad Request
Content-Type: application/x-myuser-error
{
"email": "Email address foo@example.com not found"
}
有没有公开提供的“错误”内容类型的好例子?
发布于 2012-04-23 22:37:08
我没有任何例子,但最好记住这些:
{"error":"Email address not found!","code":"fielderror","field":"email","reason":"notfound"}
(可以简化为{"error":"...","code":"emailnotfound"}
)
允许API开发人员正确地向用户显示错误(并对错误采取行动),同时允许您在不破坏应用程序的情况下更改消息。
X-Error
和X-Error-Code
来显示人类可读的错误和机器可读的代码。
application/json
码和内容类型。你不想让你的用户知道application/myapp/error
意味着有错误,除非它是200,在这种情况下你在编辑屏幕上,或者当它是302时,它实际上不是一个错误,而是一个重定向。这就是为什么你应该坚持使用一种内容类型。底线:始终保持简单。确保在检测状态时必须查看one字段,而不是两个或三个。一旦用户代理确定了状态,它就可以选择查看其他一些字段以获取额外信息,但前提是它确定出现了错误。包括单独的内容类型可能对此没有帮助。
https://stackoverflow.com/questions/10282520
复制相似问题