如何解决REST API是否应该定义与成功响应不同的错误响应?
API的成功响应具有json格式(基于avro模式)。对于错误,是否应为异常定义另一种格式(模式)?还是成功的响应应该包括错误部分?发生错误时,请将其他部分留空并仅填充错误。
这更多是内部API,需要定义各种自定义异常消息。对于所有此类应用程序错误,是否应使用相同的HTTP状态代码?
这些决定如何影响OPEN API(SWAGGER)?
解决方法
HTTP状态代码属于通用transfer documents over a network域。
换句话说,您的API应该像其他任何网站或启用Web的文档存储一样响应。
特定于您域的信息属于响应的正文。
RFC 7807定义application/problem+json
,这是用于描述问题的通用模式。当然,您不需要使用它,但是采用标准化架构确实可以使您充分利用支持它的工作。
对于错误,是否应为异常定义另一种格式(模式)?还是成功的响应应该包括错误部分?
根据您要传达的信息,这两种方法都是合理的。
考虑如何在网络上进行操作。我要求提供订单状态的HTML表示,但是您的供应商有所延迟。您需要给我一个完全不同的回复吗?对于像这样的简单情况,可能不会-您在这里不太可能发生架构冲突,只是取决于订单状态的各种可选元素。
另一方面,与需要机器处理信息的情况相比,当需要人工操作时,您可能需要不同的信息表达方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。