REST API是否应该定义与成功响应不同的错误响应?

问题描述

API的成功响应具有json格式(基于avro模式)。对于错误,是否应为异常定义另一种格式(模式)?还是成功的响应应该包括错误部分?发生错误时,请将其他部分留空并仅填充错误。

这更多是内部API,需要定义各种自定义异常消息。对于所有此类应用程序错误,是否应使用相同的HTTP状态代码?

这些决定如何影响OPEN API(SWAGGER)?

解决方法

HTTP状态代码属于通用transfer documents over a network域。

换句话说,您的API应该像其他任何网站或启用Web的文档存储一样响应。

特定于您域的信息属于响应的正文。

RFC 7807定义application/problem+json,这是用于描述问题的通用模式。当然,您不需要使用它,但是采用标准化架构确实可以使您充分利用支持它的工作。

对于错误,是否应为异常定义另一种格式(模式)?还是成功的响应应该包括错误部分?

根据您要传达的信息,这两种方法都是合理的。

考虑如何在网络上进行操作。我要求提供订单状态的HTML表示,但是您的供应商有所延迟。您需要给我一个完全不同的回复吗?对于像这样的简单情况,可能不会-您在这里不太可能发生架构冲突,只是取决于订单状态的各种可选元素。

另一方面,与需要机器处理信息的情况相比,当需要人工操作时,您可能需要不同的信息表达方式。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...