在rest端点上强制执行Json模式验证,以验证Json响应的完整性



使用spring-boot开发rest端点,以消耗来自另一个微服务(外部(的资源,因为这两个服务都处于开发阶段,所以请求和响应经常会发生很多变化。很多时候,我们的微服务因为目标微服务的响应变化而失败。

为了避免这种失败,我们考虑在调用客户端中定义一个JSON模式来描述预期的响应。

如果存在架构不匹配,则记录一条错误消息,前缀为"JSON_schema_mismatch"。

请告知是否有其他更好的解决方案可以以更通用的方式处理这一问题,这意味着同样的解决方案也可以用于其他微服务,而不会有更多的重复代码。

您可以使用对象直接从服务中获取值。例如-
VOClassvOobject=restTemplate.getForObject(url,VOClass.class,params(;

您正在使用的微服务也应该返回相同的对象,或者具有相同变量名的json。如果您在响应中获得的变量与VOClass对象中的变量匹配,那么这些值将被设置,而不匹配的值将为null。因此,如果有从微服务返回的新变量,您可以通过在VOClass中添加这些变量来合并它们。