Search in sources :

Example 6 with OAIDescriptor

use of io.gravitee.rest.api.service.swagger.OAIDescriptor in project gravitee-management-rest-api by gravitee-io.

the class SwaggerService_ParseTest method shouldReturnErrorMessageExceptionWhenParseSwaggerV2WithoutInfo_yaml.

@Test
public void shouldReturnErrorMessageExceptionWhenParseSwaggerV2WithoutInfo_yaml() throws IOException {
    PageEntity pageEntity = getPage("io/gravitee/rest/api/management/service/swagger-v2-no-info.yaml", MediaType.TEXT_PLAIN);
    OAIDescriptor descriptor = (OAIDescriptor) swaggerService.parse(pageEntity.getContent());
    assertNotNull(descriptor.getMessages());
    assertEquals("attribute info is missing", descriptor.getMessages().get(0));
}
Also used : PageEntity(io.gravitee.rest.api.model.PageEntity) OAIDescriptor(io.gravitee.rest.api.service.swagger.OAIDescriptor) Test(org.junit.Test)

Example 7 with OAIDescriptor

use of io.gravitee.rest.api.service.swagger.OAIDescriptor in project gravitee-management-rest-api by gravitee-io.

the class SwaggerService_ParseTest method shouldThrowSwaggerDescriptorExceptionWhenParseSwaggerV3WithoutInfo_yaml.

@Test
public void shouldThrowSwaggerDescriptorExceptionWhenParseSwaggerV3WithoutInfo_yaml() throws IOException {
    PageEntity pageEntity = getPage("io/gravitee/rest/api/management/service/openapi-no-info.yaml", MediaType.TEXT_PLAIN);
    OAIDescriptor descriptor = (OAIDescriptor) swaggerService.parse(pageEntity.getContent());
    assertNotNull(descriptor.getMessages());
    assertEquals("attribute info is missing", descriptor.getMessages().get(0));
}
Also used : PageEntity(io.gravitee.rest.api.model.PageEntity) OAIDescriptor(io.gravitee.rest.api.service.swagger.OAIDescriptor) Test(org.junit.Test)

Example 8 with OAIDescriptor

use of io.gravitee.rest.api.service.swagger.OAIDescriptor in project gravitee-management-rest-api by gravitee-io.

the class OAIParser method parse.

public OAIDescriptor parse(String content, ParseOptions options) {
    OpenAPIParser parser = new OpenAPIParser();
    SwaggerParseResult parseResult;
    String path = content;
    File temp = null;
    if (!isLocationUrl(content)) {
        // Swagger v1 supports only a URL to read swagger: create temporary file for Swagger parser
        temp = createTempFile(content);
        path = temp.getAbsolutePath();
    }
    parseResult = parser.readLocation(path, null, options);
    if (temp != null) {
        temp.delete();
    }
    /* Hack due to swagger v1 converting issue
         * See https://github.com/swagger-api/swagger-parser/issues/1451
         */
    if (parseResult.getMessages() != null) {
        final List<String> filteredMessages = parseResult.getMessages().stream().filter(message -> message != null && !message.matches("^attribute info.contact.*")).collect(Collectors.toList());
        parseResult.setMessages(filteredMessages);
    }
    if (parseResult.getOpenAPI() == null) {
        throw new SwaggerDescriptorException("Malformed descriptor");
    }
    OAIDescriptor descriptor = new OAIDescriptor(parseResult.getOpenAPI());
    descriptor.setMessages(parseResult.getMessages());
    return descriptor;
}
Also used : SwaggerDescriptorException(io.gravitee.rest.api.service.exceptions.SwaggerDescriptorException) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) OpenAPIParser(io.swagger.parser.OpenAPIParser) Logger(org.slf4j.Logger) BufferedWriter(java.io.BufferedWriter) FileWriter(java.io.FileWriter) LoggerFactory(org.slf4j.LoggerFactory) OAIDescriptor(io.gravitee.rest.api.service.swagger.OAIDescriptor) IOException(java.io.IOException) Collectors(java.util.stream.Collectors) File(java.io.File) ParseOptions(io.swagger.v3.parser.core.models.ParseOptions) List(java.util.List) OAIDescriptor(io.gravitee.rest.api.service.swagger.OAIDescriptor) SwaggerDescriptorException(io.gravitee.rest.api.service.exceptions.SwaggerDescriptorException) OpenAPIParser(io.swagger.parser.OpenAPIParser) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) File(java.io.File)

Example 9 with OAIDescriptor

use of io.gravitee.rest.api.service.swagger.OAIDescriptor in project gravitee-management-rest-api by gravitee-io.

the class SwaggerService_ParseTest method shouldNotParseSwaggerV1WithoutInfo_json.

@Test
public void shouldNotParseSwaggerV1WithoutInfo_json() throws IOException {
    PageEntity pageEntity = getPage("io/gravitee/rest/api/management/service/swagger-v1-no-info.json", MediaType.APPLICATION_JSON);
    OAIDescriptor descriptor = (OAIDescriptor) swaggerService.parse(pageEntity.getContent());
    assertNotNull(descriptor.getMessages());
    assertEquals("attribute info.title is missing", descriptor.getMessages().get(0));
}
Also used : PageEntity(io.gravitee.rest.api.model.PageEntity) OAIDescriptor(io.gravitee.rest.api.service.swagger.OAIDescriptor) Test(org.junit.Test)

Example 10 with OAIDescriptor

use of io.gravitee.rest.api.service.swagger.OAIDescriptor in project gravitee-management-rest-api by gravitee-io.

the class SwaggerService_ParseTest method shouldThrowInfoNameMissingWhenFailIfErrorsTrue_yaml.

@Test
public void shouldThrowInfoNameMissingWhenFailIfErrorsTrue_yaml() throws IOException {
    PageEntity pageEntity = getPage("io/gravitee/rest/api/management/service/swagger-v2-no-info-name.yaml", MediaType.APPLICATION_JSON);
    OAIDescriptor descriptor = (OAIDescriptor) swaggerService.parse(pageEntity.getContent());
    assertNotNull(descriptor.getMessages());
    assertEquals("attribute info.title is missing", descriptor.getMessages().get(0));
}
Also used : PageEntity(io.gravitee.rest.api.model.PageEntity) OAIDescriptor(io.gravitee.rest.api.service.swagger.OAIDescriptor) Test(org.junit.Test)

Aggregations

OAIDescriptor (io.gravitee.rest.api.service.swagger.OAIDescriptor)18 PageEntity (io.gravitee.rest.api.model.PageEntity)16 Test (org.junit.Test)15 PageConfigurationOAITransformer (io.gravitee.rest.api.service.impl.swagger.transformer.page.PageConfigurationOAITransformer)8 ApiEntity (io.gravitee.rest.api.model.api.ApiEntity)7 JsonNode (com.fasterxml.jackson.databind.JsonNode)6 EntrypointsOAITransformer (io.gravitee.rest.api.service.impl.swagger.transformer.entrypoints.EntrypointsOAITransformer)6 SwaggerDescriptorException (io.gravitee.rest.api.service.exceptions.SwaggerDescriptorException)2 List (java.util.List)2 ApiEntrypointEntity (io.gravitee.rest.api.model.api.ApiEntrypointEntity)1 SwaggerProperties (io.gravitee.rest.api.service.impl.swagger.SwaggerProperties)1 OAIParser (io.gravitee.rest.api.service.impl.swagger.parser.OAIParser)1 WsdlParser (io.gravitee.rest.api.service.impl.swagger.parser.WsdlParser)1 AbstractPageConfigurationSwaggerTransformer (io.gravitee.rest.api.service.impl.swagger.transformer.page.AbstractPageConfigurationSwaggerTransformer)1 OpenAPIParser (io.swagger.parser.OpenAPIParser)1 OpenAPI (io.swagger.v3.oas.models.OpenAPI)1 Server (io.swagger.v3.oas.models.servers.Server)1 ParseOptions (io.swagger.v3.parser.core.models.ParseOptions)1 SwaggerParseResult (io.swagger.v3.parser.core.models.SwaggerParseResult)1 BufferedWriter (java.io.BufferedWriter)1