Java 有没有一种直接的方法可以使用rest-assured对openapi生成的json模式的组件进行验证
我们做了一个POC,效果很好 以下是用于为给定Java组件生成json模式的JJSchema代码: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
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模式。本文详细阐述了我提出的解决方案: