我有我的 openapi: 3.0.0 YAML 文件,我正在寻找一种从模式生成测试数据响应(JSON 对象)的方法。 这就是我要找的,但我不能让它在 openapi: 3.0.0 上工作,代码非常适合“swagger”:“2.0”定义。我试图让代码与支持 OpenAPI 3.0 的 Swagger Java 库 2.x 一起使用。我知道我需要使用 Swagger 2.x 版。
import io.swagger.parser.SwaggerParser;
import io.swagger.models.*;
import io.swagger.inflector.examples.*;
import io.swagger.inflector.examples.models.Example;
import io.swagger.inflector.processors.JsonNodeExampleSerializer;
import io.swagger.util.Json;
import io.swagger.util.Yaml;
import java.util.Map;
import com.fasterxml.jackson.databind.module.SimpleModule;
// Load your OpenAPI/Swagger definition
Swagger swagger = new SwaggerParser().read("http://petstore.swagger.io/v2/swagger.json");
// Create an Example object for the Pet model
Map<String, Model> definitions = swagger.getDefinitions();
Model pet = definitions.get("Pet");
Example example = ExampleBuilder.fromModel("Pet", pet, definitions, new HashSet<String>());
// Another way:
// …Run Code Online (Sandbox Code Playgroud) 我想从招摇定义文件(yaml / json)生成示例请求和响应。目的是存根这些API。
不幸的是,我没有管理员权限来安装swagger编辑器的generate server列表中列出的任何服务器框架。我还尝试了用soapui(5.x)和ready api模拟它,但是它们都无法解析定义文件响应对象中的模式引用-例如:
"responses": {
"200": {
"description": "pet response",
"schema": {
"$ref": "**#/definitions/Pet**"
}
},
"default": {
"description": "unexpected error",
"schema": {
"$ref": "**#/definitions/ErrorModel**"
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以根据定义生成模拟请求和响应?
谢谢,