Search in sources :

Example 6 with SwaggerCompatConverter

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

the class SwaggerServiceImpl method transformV1.

private Swagger transformV1(String content, PageConfigurationEntity config) {
    // Create temporary file for Swagger parser (only for descriptor version < 2.x)
    File temp = null;
    String fileName = "gio_swagger_" + System.currentTimeMillis();
    BufferedWriter bw = null;
    FileWriter out = null;
    Swagger swagger = null;
    try {
        temp = File.createTempFile(fileName, ".tmp");
        out = new FileWriter(temp);
        bw = new BufferedWriter(out);
        bw.write(content);
        bw.close();
        swagger = new SwaggerCompatConverter().read(temp.getAbsolutePath());
        if (swagger != null && config != null && config.getTryItURL() != null) {
            URI newURI = URI.create(config.getTryItURL());
            swagger.setSchemes(Collections.singletonList(Scheme.forValue(newURI.getScheme())));
            swagger.setHost((newURI.getPort() != -1) ? newURI.getHost() + ':' + newURI.getPort() : newURI.getHost());
            swagger.setBasePath((newURI.getRawPath().isEmpty()) ? "/" : newURI.getRawPath());
        }
    } catch (IOException ioe) {
    // Fallback to the new parser
    } finally {
        if (bw != null) {
            try {
                bw.close();
            } catch (IOException e) {
            }
        }
        if (out != null) {
            try {
                out.close();
            } catch (IOException e) {
            }
        }
        if (temp != null) {
            temp.delete();
        }
    }
    return swagger;
}
Also used : SwaggerCompatConverter(io.swagger.parser.SwaggerCompatConverter) FileWriter(java.io.FileWriter) Swagger(io.swagger.models.Swagger) IOException(java.io.IOException) File(java.io.File) URI(java.net.URI) BufferedWriter(java.io.BufferedWriter)

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