Search in sources :

Example 1 with SwaggerCompatConverter

use of io.swagger.parser.SwaggerCompatConverter in project swagger-parser by swagger-api.

the class OperationConverterTest method testConvertOperation_ConsumesAndProducesInheritedFromApiDeclaration.

@Test
public void testConvertOperation_ConsumesAndProducesInheritedFromApiDeclaration() throws Exception {
    Set<String> expectedConsumes = new HashSet<>(Arrays.asList("application/json", "application/xml"));
    Set<String> expectedProduces = new HashSet<>(Arrays.asList("text/plain"));
    final ApiDeclaration apiDeclaration = new ApiDeclaration();
    apiDeclaration.setConsumes(new ArrayList<>(expectedConsumes));
    apiDeclaration.setProduces(new ArrayList<>(expectedProduces));
    io.swagger.models.apideclaration.Operation operation = new io.swagger.models.apideclaration.Operation();
    operation.setMethod(Method.GET);
    final SwaggerCompatConverter swaggerCompatConverter = new SwaggerCompatConverter();
    Operation converted = swaggerCompatConverter.convertOperation("tag", operation, apiDeclaration);
    assertSetsAreEqual(expectedConsumes, converted.getConsumes());
    assertSetsAreEqual(expectedProduces, converted.getProduces());
}
Also used : ApiDeclaration(io.swagger.models.apideclaration.ApiDeclaration) SwaggerCompatConverter(io.swagger.parser.SwaggerCompatConverter) Operation(io.swagger.models.Operation) Test(org.testng.annotations.Test)

Example 2 with SwaggerCompatConverter

use of io.swagger.parser.SwaggerCompatConverter in project swagger-parser by swagger-api.

the class SwaggerCompatConverterTest method loadsSpecFromClasspath.

@Test
public void loadsSpecFromClasspath() throws IOException {
    SwaggerCompatConverter converter = new SwaggerCompatConverter();
    Swagger result = converter.read("/specs/v1_2/singleFile.json");
    assertTrue(result != null, "Didn't load spec from classpath");
}
Also used : SwaggerCompatConverter(io.swagger.parser.SwaggerCompatConverter) Swagger(io.swagger.models.Swagger) Test(org.testng.annotations.Test)

Example 3 with SwaggerCompatConverter

use of io.swagger.parser.SwaggerCompatConverter in project swagger-parser by swagger-api.

the class SwaggerCompatConverterTest method testIssue_641.

@Test
public void testIssue_641() throws IOException {
    SwaggerCompatConverter converter = new SwaggerCompatConverter();
    Swagger swagger2 = converter.read("specs/v1_2/issue-641.json");
    assertNotNull(swagger2);
    BodyParameter bodyParameter = (BodyParameter) swagger2.getPaths().get("/user/createWithArray").getPost().getParameters().get(0);
    assertEquals(((RefProperty) ((ArrayModel) bodyParameter.getSchema()).getItems()).get$ref(), "#/definitions/User");
}
Also used : SwaggerCompatConverter(io.swagger.parser.SwaggerCompatConverter) Swagger(io.swagger.models.Swagger) BodyParameter(io.swagger.models.parameters.BodyParameter) ArrayModel(io.swagger.models.ArrayModel) Test(org.testng.annotations.Test)

Example 4 with SwaggerCompatConverter

use of io.swagger.parser.SwaggerCompatConverter in project swagger-parser by swagger-api.

the class SwaggerCompatConverterTest method failsOnNonExistentSpec.

@Test
public void failsOnNonExistentSpec() throws IOException {
    SwaggerCompatConverter converter = new SwaggerCompatConverter();
    Swagger result = converter.read("specs/v1_2/not-exists.json");
    assertTrue(result == null);
}
Also used : SwaggerCompatConverter(io.swagger.parser.SwaggerCompatConverter) Swagger(io.swagger.models.Swagger) Test(org.testng.annotations.Test)

Example 5 with SwaggerCompatConverter

use of io.swagger.parser.SwaggerCompatConverter in project gravitee-management-rest-api by gravitee-io.

the class SwaggerServiceImpl method prepare.

public NewApiEntity prepare(ImportSwaggerDescriptorEntity swaggerDescriptor) {
    Swagger swagger = null;
    switch(swaggerDescriptor.getVersion()) {
        case VERSION_1_0:
            try {
                logger.info("Loading an old Swagger descriptor from {}", swaggerDescriptor.getPayload());
                // For spec < 2.0, only read by url is possible
                swagger = new SwaggerCompatConverter().read(swaggerDescriptor.getPayload());
            } catch (IOException ioe) {
                logger.error("Can not read old Swagger specification", ioe);
                throw new SwaggerDescriptorException();
            }
        case VERSION_2_0:
            if (swaggerDescriptor.getType() == ImportSwaggerDescriptorEntity.Type.INLINE) {
                logger.info("Loading an inline Swagger descriptor");
                swagger = new SwaggerParser().parse(swaggerDescriptor.getPayload());
            } else if (swaggerDescriptor.getType() == ImportSwaggerDescriptorEntity.Type.URL) {
                logger.info("Loading a Swagger descriptor from URL: ", swaggerDescriptor.getPayload());
                swagger = new SwaggerParser().read(swaggerDescriptor.getPayload());
            }
    }
    if (swagger == null) {
        throw new SwaggerDescriptorException();
    }
    NewApiEntity apiEntity = new NewApiEntity();
    apiEntity.setName(swagger.getInfo().getTitle());
    apiEntity.setDescription(swagger.getInfo().getDescription());
    apiEntity.setVersion(swagger.getInfo().getVersion());
    String scheme = (swagger.getSchemes() == null || swagger.getSchemes().isEmpty()) ? defaultScheme : swagger.getSchemes().iterator().next().toValue();
    apiEntity.setEndpoint(scheme + "://" + swagger.getHost() + swagger.getBasePath());
    apiEntity.setPaths(new ArrayList<>(swagger.getPaths().keySet().stream().map(path -> path.replaceAll("\\{(.[^/]*)\\}", ":$1")).collect(Collectors.toList())));
    return apiEntity;
}
Also used : SwaggerParser(io.swagger.parser.SwaggerParser) Scheme(io.swagger.models.Scheme) Yaml(io.swagger.util.Yaml) SwaggerParser(io.swagger.parser.SwaggerParser) Swagger(io.swagger.models.Swagger) URISyntaxException(java.net.URISyntaxException) Json(io.swagger.util.Json) LoggerFactory(org.slf4j.LoggerFactory) ArrayList(java.util.ArrayList) Value(org.springframework.beans.factory.annotation.Value) PageEntity(io.gravitee.management.model.PageEntity) OpenAPI(io.swagger.v3.oas.models.OpenAPI) SwaggerCompatConverter(io.swagger.parser.SwaggerCompatConverter) URI(java.net.URI) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) Logger(org.slf4j.Logger) ImportSwaggerDescriptorEntity(io.gravitee.management.model.ImportSwaggerDescriptorEntity) BufferedWriter(java.io.BufferedWriter) FileWriter(java.io.FileWriter) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) IOException(java.io.IOException) NewApiEntity(io.gravitee.management.model.NewApiEntity) Collectors(java.util.stream.Collectors) File(java.io.File) Component(org.springframework.stereotype.Component) MediaType(io.gravitee.common.http.MediaType) PageConfigurationEntity(io.gravitee.management.model.PageConfigurationEntity) SwaggerDescriptorException(io.gravitee.management.service.exceptions.SwaggerDescriptorException) SwaggerService(io.gravitee.management.service.SwaggerService) Collections(java.util.Collections) OpenAPIV3Parser(io.swagger.v3.parser.OpenAPIV3Parser) SwaggerDescriptorException(io.gravitee.management.service.exceptions.SwaggerDescriptorException) SwaggerCompatConverter(io.swagger.parser.SwaggerCompatConverter) Swagger(io.swagger.models.Swagger) IOException(java.io.IOException) NewApiEntity(io.gravitee.management.model.NewApiEntity)

Aggregations

SwaggerCompatConverter (io.swagger.parser.SwaggerCompatConverter)6 Swagger (io.swagger.models.Swagger)5 Test (org.testng.annotations.Test)4 BufferedWriter (java.io.BufferedWriter)2 File (java.io.File)2 FileWriter (java.io.FileWriter)2 IOException (java.io.IOException)2 URI (java.net.URI)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 MediaType (io.gravitee.common.http.MediaType)1 ImportSwaggerDescriptorEntity (io.gravitee.management.model.ImportSwaggerDescriptorEntity)1 NewApiEntity (io.gravitee.management.model.NewApiEntity)1 PageConfigurationEntity (io.gravitee.management.model.PageConfigurationEntity)1 PageEntity (io.gravitee.management.model.PageEntity)1 SwaggerService (io.gravitee.management.service.SwaggerService)1 SwaggerDescriptorException (io.gravitee.management.service.exceptions.SwaggerDescriptorException)1 ArrayModel (io.swagger.models.ArrayModel)1 Operation (io.swagger.models.Operation)1 Scheme (io.swagger.models.Scheme)1 ApiDeclaration (io.swagger.models.apideclaration.ApiDeclaration)1