REST API 4xx/5xx响应的详细级别
我很好奇,提供4xx/5xx错误响应的最常见方式是什么 通常我会尝试在一些地方放置显式错误响应,这可能看起来像:REST API 4xx/5xx响应的详细级别,rest,http,Rest,Http,我很好奇,提供4xx/5xx错误响应的最常见方式是什么 通常我会尝试在一些地方放置显式错误响应,这可能看起来像: // 400 bad request { "errorCode": 100, "message": "user-friendly message with info what happened" } // 400 bad request // Header: CorrelationID=123abc (empty response body) 从我的观点来看,这将提高AP
// 400 bad request
{
"errorCode": 100,
"message": "user-friendly message with info what happened"
}
// 400 bad request
// Header: CorrelationID=123abc
(empty response body)
从我的观点来看,这将提高API的实现速度,因为您不需要查看文档、发送电子邮件等:)API将指导您并告诉您出了什么问题
但我的一个朋友告诉我,他通常返回空的正文、一些http状态码(400、404等)和标头中的“RequestID”(用于调试目的)。因此,他典型的错误响应如下所示:
// 400 bad request
{
"errorCode": 100,
"message": "user-friendly message with info what happened"
}
// 400 bad request
// Header: CorrelationID=123abc
(empty response body)
我也对这个问题进行了一些调查,发现了一篇关于“”的好文章。在那里,我发现甚至有一个RESTAPI错误处理的标准-
基于此,我有几个问题:
我们广泛使用
application/problem+json
,而且它很可爱。我们的基本错误通常只有一条消息和一个类型,但如果它对开发人员有用,我们会添加更多信息
最好包含一个链接来包含有关错误的更多信息,如果是验证错误,我们通常会包含有关哪个字段失败的信息
一般来说,我会说:越多越好。如果您的API用户有大量信息需要继续解决他们的错误,那将是一次极好的开发人员体验
您的朋友没有做“错误的事情”,但可能不是最好的事情。我们广泛使用
application/problem+json
,这很可爱。我们的基本错误通常只有一条消息和一个类型,但如果它对开发人员有用,我们会添加更多信息
最好包含一个链接来包含有关错误的更多信息,如果是验证错误,我们通常会包含有关哪个字段失败的信息
一般来说,我会说:越多越好。如果您的API用户有大量信息需要继续解决他们的错误,那将是一次极好的开发人员体验
你的朋友没有做“错事”,但可能不是最好的事情