Java 有没有一种直接的方法可以使用rest-assured对openapi生成的json模式的组件进行验证

Java 有没有一种直接的方法可以使用rest-assured对openapi生成的json模式的组件进行验证,java,openapi,rest-assured,json-schema-validator,Java,Openapi,Rest Assured,Json Schema Validator,我们做了一个POC,效果很好 以下是用于为给定Java组件生成json模式的JJSchema代码: private void generateSchema(Class clazz, String filename) { JsonSchemaFactory schemaFactory = new JsonSchemaV4Factory(); schemaFactory.setAutoPutDollarSchema(true); JsonNode s

我们做了一个POC,效果很好

以下是用于为给定Java组件生成json模式的JJSchema代码:

private void generateSchema(Class clazz, String filename) {

        JsonSchemaFactory schemaFactory = new JsonSchemaV4Factory();
        schemaFactory.setAutoPutDollarSchema(true);
        JsonNode schemaNode = schemaFactory.createSchema(clazz);
        try {
            PrintWriter writer = new PrintWriter(filename);
            logger.info(mapper.writeValueAsString(schemaNode));
            writer.println(mapper.writeValueAsString(schemaNode));
            writer.close();
        } catch(Exception e) {
            logger.error("Hit error: {}", e.getMessage(), e);
        }
        
    }
下面是用于验证生成的架构的放心代码:

oneResponseWithQuery.getValidatableResponse().assertThat().body(matchesJsonSchema(url));
我们与开发团队会面,发现他们正在使用json模式生成

看起来不错。访问根级别的基本url没有问题

问题是我需要针对特定组件验证响应

我通读了详细信息,似乎可以为组件指定特定json模式的路径。但它不起作用。我一直收到一个404错误,或者我得到了相同的根级别的基本url

以下是我试图验证的组件引用:

“响应”:{
"200": {
“内容”:{
“application/json;charset=UTF-8”:{
“模式”:{
“$ref”:“#/components/schemas/mobilesearch响应”
}
}
}
}

}
如果有人感兴趣,我找到了解决问题的方法。我试图在openapi中找到一个解决方案,而解决方案通常是json模式。本文详细阐述了我提出的解决方案: