¿Cómo generar ejemplos JSON API abierta de archivo de 3.0 yaml?

Nilz:

Tengo mi API abierta: 3.0.0 archivo YAML, estoy buscando una manera de generar la respuesta de datos de prueba (objeto JSON) del esquema. Esto es lo que yo estoy buscando, pero no puedo hacerlo funcionar de API abierta: 3.0.0, el código funciona perfectamente para "arrogancia": "2.0" definiciones. He tratado de conseguir el funcionamiento de código con 2.x Swagger Java bibliotecas, lo que ayuda API abierta 3.0. Sé que necesito utilizar la versión 2.x de Swagger.

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);

Este código está trabajando, sólo tiene que conseguir el mismo código de trabajo para la API abierta: 3.0.0.

Nilz:

Encontrado la solución,

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);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=190842&siteId=1
Recomendado
Clasificación