【发布时间】:2014-11-04 23:50:00
【问题描述】:
是否有 REST 服务的标准错误消息模型?
我正在构建一个带有 Spring REST 后端和基于 Backbone JS 的前端的 REST 服务。在我所在的所有项目中,都有一些自制的错误消息机制,以及对这些错误的自制客户端解释。对于这个特定的项目,这通常具有有限的范围和用途。
现在,在我当前的项目中,我想为 POST 请求中的无效 JSON 字段引入字段错误。所以我需要扩展我的模型来支持这一点。
在我看来,这又是一辆自行车,因为现场验证是我们这个时代的标准要求,所以我想知道是否已经有一个错误模型,我可以在我的项目中重用它。
我非常熟悉 Spring 中的 HandlerExceptionResolver 和 Java 中的 @Valid 注解。事实上,我正在使用它们分配。这更像是一个架构类型的问题,将此类错误传达给独立 JS 客户端的最佳模型是什么。
【问题讨论】:
-
您必须使用 HTTP 状态代码和消息(也称为自描述消息约束),并且在正文中您可以以更具体的方式描述错误,例如带有多语言错误消息和自定义错误代码。请注意,错误消息会发送给最终用户,他们并不关心确切的异常类型等...您可以通过调试模式向开发人员发送扩展错误消息。
-
我在询问错误主体的模型:) 现在我看到 2 个分类 - 字段错误、逻辑错误,基本上我在问什么是更大的图景,除了字段错误之外还缺少什么& 全局错误。
-
我认为缺少将客户端与服务实现分离的标准。 Hydra 确实有一个。如果您要问的话,我不知道其他错误类型。对于字段错误,您显然必须使用一些 CompositeException,对于一般错误,您必须使用一个简单的异常。之后,您必须将其转换为 json、xml 等……仅此而已。我认为这并不难。
标签: spring rest architecture restful-architecture