OpenAPIの3.0 YAMLファイルからJSONの例を生成するには?

Nilz:

私は、スキーマからのテストデータ応答(JSONオブジェクト)を生成するための方法を探しています、3.0.0 YAMLファイル:私は私のOpenAPIのを持っています。これは、「2.0」の定義:コードは「闊歩」のために完璧に動作し、3.0.0:私は探しています何ですが、私はそれがOpenAPIのために働いて得ることができません。私はコードが闊歩するJavaライブラリ2.xの、サポートOpenAPIの3.0での作業を取得しようとしています。私は私が闊歩のバージョン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:
// Example example = ExampleBuilder.fromProperty(new RefProperty("Pet"), swagger.getDefinitions());

// Configure example serializers
SimpleModule simpleModule = new SimpleModule().addSerializer(new JsonNodeExampleSerializer());
Json.mapper().registerModule(simpleModule);

// Convert the Example object to string

// JSON example
String jsonExample = Json.pretty(example);
System.out.println(jsonExample);

3.0.0:このコードは、単にOpenAPIのために働いて同じコードを取得する必要があり、働いています。

Nilz:

解決策を見つけました、

OpenAPI swagger = new OpenAPIV3Parser().read("url to Open API 3.0 Swagger")
Map < String, Schema > definitions = swagger.getComponents().getSchemas()
Schema model = definitions.get("Pet")
Example example = ExampleBuilder.fromSchema(model, definitions)
SimpleModule simpleModule = new SimpleModule().addSerializer(new JsonNodeExampleSerializer())
Json.mapper().registerModule(simpleModule)
String jsonExample = Json.pretty(example);
System.out.println(jsonExample);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=190839&siteId=1