REST API:无效JSON的HTML通用错误响应

时间:2019-04-17 06:48:02

标签: rest

服务X托管REST API,并且位于服务Y后面。

  

客户-> Y-> X

对于无效的JSON,服务Y会以HTML错误进行响应(如下所示)。服务X无法控制Y。

<html>
<head><title>400 Bad Request</title></head>
<center><h1>400 Bad Request</h1></center>
</body>
</html>

对于所有其他类型的错误,X使用适当的HTTP响应代码和错误JSON(以下格式)进行响应。

{
    "errorCode": "InvalidXXX",
    "message": ""
}
  1. 我正在尝试检查是否存在关于REST API错误响应标准的RFC?
  2. 如果服务返回的错误响应中提到JSON无效的详细信息,是否存在安全风险?

我试图了解将这种特殊情况作为客户集成指南的一部分记录下来是否对我们很好。

1 个答案:

答案 0 :(得分:2)

  

我正在尝试检查是否存在关于REST API错误响应标准的RFC?

REST是Fielding在其论文的chapter 5中定义的一种体系结构样式,它对错误的响应格式一无所知。

我假设您正在通过HTTP执行REST,所以我建议您针对每种情况choose最合适status code。状态代码旨在指示服务器尝试理解并满足客户请求的结果。

状态代码有时不足以传达有关错误的足够信息,以提供帮助,并且有效负载中发送的某些详细信息可以帮助客户端了解导致错误的原因。

如果您正在寻找IETF的标准来报告错误,则最接近的可能是RFC 7807。该规范定义了简单的JSON和XML文档格式,以将错误以及application/problem+jsonapplication/problem+xml媒体类型报告给客户端。

  

如果服务返回的错误响应中提到JSON无效的详细信息,是否存在安全风险?

当发生客户错误时,有必要通知客户发生了什么问题,这样他们就可以解决问题并执行新的请求。但是,您不应泄漏任何可能被恶意用户利用的堆栈跟踪或内部详细信息。

相关问题