Search in sources :

Example 71 with Reader

use of io.swagger.v3.jaxrs2.Reader in project swagger-core by swagger-api.

the class ReaderTest method testResolveDuplicatedOperationIdMethodName.

@Test(description = "Get a Duplicated Operation Id with same id as method name")
public void testResolveDuplicatedOperationIdMethodName() {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(DuplicatedOperationMethodNameResource.class);
    Paths paths = openAPI.getPaths();
    assertNotNull(paths);
    Operation firstOperation = paths.get("/1").getGet();
    Operation secondOperation = paths.get("/2").getGet();
    Operation secondPostOperation = paths.get("/2").getPost();
    Operation thirdPostOperation = paths.get("/3").getPost();
    assertNotNull(firstOperation);
    assertNotNull(secondOperation);
    assertNotNull(secondPostOperation);
    assertNotNull(thirdPostOperation);
    assertNotEquals(firstOperation.getOperationId(), secondOperation.getOperationId());
    assertNotEquals(secondOperation.getOperationId(), secondPostOperation.getOperationId());
    assertNotEquals(secondPostOperation.getOperationId(), thirdPostOperation.getOperationId());
    Operation thirdOperation = paths.get("/3").getGet();
    Operation fourthOperation = paths.get("/4").getGet();
    assertNotNull(thirdOperation);
    assertNotNull(fourthOperation);
    assertNotEquals(thirdOperation.getOperationId(), fourthOperation.getOperationId());
}
Also used : Paths(io.swagger.v3.oas.models.Paths) Operation(io.swagger.v3.oas.models.Operation) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Example 72 with Reader

use of io.swagger.v3.jaxrs2.Reader in project swagger-core by swagger-api.

the class JaxrsOpenApiContext method buildReader.

@Override
protected OpenApiReader buildReader(OpenAPIConfiguration openApiConfiguration) throws Exception {
    OpenApiReader reader;
    if (StringUtils.isNotBlank(openApiConfiguration.getReaderClass())) {
        Class cls = getClass().getClassLoader().loadClass(openApiConfiguration.getReaderClass());
        reader = (OpenApiReader) cls.newInstance();
    } else {
        reader = new Reader();
    }
    if (reader instanceof Reader) {
        ((Reader) reader).setApplication(app);
    }
    reader.setConfiguration(openApiConfiguration);
    return reader;
}
Also used : Reader(io.swagger.v3.jaxrs2.Reader) OpenApiReader(io.swagger.v3.oas.integration.api.OpenApiReader) OpenApiReader(io.swagger.v3.oas.integration.api.OpenApiReader)

Example 73 with Reader

use of io.swagger.v3.jaxrs2.Reader in project swagger-core by swagger-api.

the class ParameterDeserializer method deserialize.

@Override
public Parameter deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
    Parameter result = null;
    JsonNode node = jp.getCodec().readTree(jp);
    JsonNode sub = node.get("$ref");
    JsonNode inNode = node.get("in");
    JsonNode desc = node.get("description");
    if (sub != null) {
        result = new Parameter().$ref(sub.asText());
        if (desc != null && openapi31) {
            result.description(desc.asText());
        }
    } else if (inNode != null) {
        String in = inNode.asText();
        ObjectReader reader = null;
        ObjectMapper mapper = null;
        if (openapi31) {
            mapper = Json31.mapper();
        } else {
            mapper = Json.mapper();
        }
        if ("query".equals(in)) {
            reader = mapper.readerFor(QueryParameter.class);
        } else if ("header".equals(in)) {
            reader = mapper.readerFor(HeaderParameter.class);
        } else if ("path".equals(in)) {
            reader = mapper.readerFor(PathParameter.class);
        } else if ("cookie".equals(in)) {
            reader = mapper.readerFor(CookieParameter.class);
        }
        if (reader != null) {
            result = reader.with(DeserializationFeature.READ_ENUMS_USING_TO_STRING).readValue(node);
        }
    }
    return result;
}
Also used : Parameter(io.swagger.v3.oas.models.parameters.Parameter) CookieParameter(io.swagger.v3.oas.models.parameters.CookieParameter) QueryParameter(io.swagger.v3.oas.models.parameters.QueryParameter) HeaderParameter(io.swagger.v3.oas.models.parameters.HeaderParameter) PathParameter(io.swagger.v3.oas.models.parameters.PathParameter) JsonNode(com.fasterxml.jackson.databind.JsonNode) ObjectReader(com.fasterxml.jackson.databind.ObjectReader) CookieParameter(io.swagger.v3.oas.models.parameters.CookieParameter) HeaderParameter(io.swagger.v3.oas.models.parameters.HeaderParameter) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper)

Example 74 with Reader

use of io.swagger.v3.jaxrs2.Reader in project swagger-core by swagger-api.

the class JsonIdentityTest method testJsonIdentity.

@Test(description = "Test JsonIdentity")
public void testJsonIdentity() throws IOException {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(JsonIdentityResource.class);
    SerializationMatchers.assertEqualsToYaml(openAPI, EXPECTED_YAML);
}
Also used : OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Example 75 with Reader

use of io.swagger.v3.jaxrs2.Reader in project swagger-core by swagger-api.

the class PetResourceTest method testSetOfClasses.

@Test(description = "Test a full set of classes")
public void testSetOfClasses() {
    final Reader reader = new Reader(new OpenAPI());
    final OpenAPI openAPI = reader.read(getSetOfClassesFromPackage(PETSTORE_PACKAGE));
    assertNotNull(openAPI);
    try {
        SerializationMatchers.assertEqualsToYaml(openAPI, getOpenAPIAsString(PETSTORE_SOURCE + "FullPetResource.yaml"));
    } catch (IOException e) {
        fail();
    }
}
Also used : IOException(java.io.IOException) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test) AbstractAnnotationTest(io.swagger.v3.jaxrs2.annotations.AbstractAnnotationTest)

Aggregations

OpenAPI (io.swagger.v3.oas.models.OpenAPI)85 Test (org.testng.annotations.Test)81 Operation (io.swagger.v3.oas.models.Operation)24 PathItem (io.swagger.v3.oas.models.PathItem)17 Info (io.swagger.v3.oas.models.info.Info)17 Components (io.swagger.v3.oas.models.Components)15 Paths (io.swagger.v3.oas.models.Paths)15 Reader (io.swagger.v3.jaxrs2.Reader)11 IntegerSchema (io.swagger.v3.oas.models.media.IntegerSchema)9 ArraySchema (io.swagger.v3.oas.models.media.ArraySchema)8 Schema (io.swagger.v3.oas.models.media.Schema)8 Parameter (io.swagger.v3.oas.models.parameters.Parameter)7 Method (java.lang.reflect.Method)7 SwaggerConfiguration (io.swagger.v3.oas.integration.SwaggerConfiguration)5 AbstractSpecFilter (io.swagger.v3.core.filter.AbstractSpecFilter)4 OpenAPISpecFilter (io.swagger.v3.core.filter.OpenAPISpecFilter)4 SpecFilter (io.swagger.v3.core.filter.SpecFilter)4 AbstractAnnotationTest (io.swagger.v3.jaxrs2.annotations.AbstractAnnotationTest)4 GenericOpenApiContext (io.swagger.v3.oas.integration.GenericOpenApiContext)4 OpenApiContext (io.swagger.v3.oas.integration.api.OpenApiContext)4