Search in sources :

Example 76 with Reader

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

the class AbstractAnnotationTest method readIntoYaml.

public String readIntoYaml(final Class<?> cls) {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(cls);
    try {
        Yaml.mapper().setSerializationInclusion(JsonInclude.Include.NON_NULL);
        // parse JSON
        JsonNode jsonNodeTree = Yaml.mapper().readTree(Yaml.mapper().writeValueAsString(openAPI));
        // return it as YAML
        return Yaml.mapper().writeValueAsString(jsonNodeTree);
    } catch (Exception e) {
        return "Empty YAML";
    }
}
Also used : Reader(io.swagger.v3.jaxrs2.Reader) JsonNode(com.fasterxml.jackson.databind.JsonNode) OpenAPI(io.swagger.v3.oas.models.OpenAPI) IOException(java.io.IOException)

Example 77 with Reader

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

the class ReaderListenerTest method testReaderListener.

@Test(description = "test a readerListener resource")
public void testReaderListener() throws Exception {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(Collections.singleton(ReaderListenerResource.class));
    assertNotNull(openAPI);
    assertEquals(openAPI.getTags().get(0).getName(), "Tag-added-before-read");
    assertEquals(openAPI.getTags().get(1).getName(), "Tag-added-after-read");
}
Also used : ReaderListenerResource(io.swagger.v3.jaxrs2.resources.ReaderListenerResource) Reader(io.swagger.v3.jaxrs2.Reader) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Example 78 with Reader

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

the class ReaderTest method testGetResponses.

@Test(description = "Responses")
public void testGetResponses() {
    Reader reader = new Reader(new OpenAPI());
    Method[] methods = ResponsesResource.class.getMethods();
    Operation responseOperation = reader.parseMethod(Arrays.stream(methods).filter((method -> method.getName().equals("getResponses"))).findFirst().get(), null, null);
    assertNotNull(responseOperation);
    ApiResponses responses = responseOperation.getResponses();
    assertEquals(RESPONSES_NUMBER, responses.size());
    ApiResponse apiResponse = responses.get(RESPONSE_CODE_200);
    assertNotNull(apiResponse);
    assertEquals(RESPONSE_DESCRIPTION, apiResponse.getDescription());
}
Also used : Method(java.lang.reflect.Method) Operation(io.swagger.v3.oas.models.Operation) OpenAPI(io.swagger.v3.oas.models.OpenAPI) ApiResponses(io.swagger.v3.oas.models.responses.ApiResponses) ApiResponse(io.swagger.v3.oas.models.responses.ApiResponse) Test(org.testng.annotations.Test)

Example 79 with Reader

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

the class ReaderTest method testResourceWithSubresources.

@Test(description = "test resource with subresources")
public void testResourceWithSubresources() {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(ResourceWithSubResource.class);
    Paths paths = openAPI.getPaths();
    assertEquals(paths.size(), 3);
    PathItem pathItem = paths.get("/employees/{id}");
    assertNotNull(pathItem);
    Operation operation = pathItem.getGet();
    assertNotNull(operation);
    ArraySchema arraySchema = (ArraySchema) operation.getResponses().get("200").getContent().values().iterator().next().getSchema();
    assertNotNull(arraySchema);
    assertEquals(arraySchema.getItems().get$ref(), "#/components/schemas/Pet");
    pathItem = paths.get("/employees/{id}/{id}");
    assertNotNull(pathItem);
    operation = pathItem.getGet();
    assertNotNull(operation);
    Schema schema = operation.getResponses().get("200").getContent().values().iterator().next().getSchema();
    assertNotNull(schema);
    assertEquals(schema.get$ref(), "#/components/schemas/Pet");
    pathItem = paths.get("/employees/noPath");
    assertNotNull(pathItem);
    operation = pathItem.getGet();
    assertNotNull(operation);
    schema = operation.getResponses().getDefault().getContent().values().iterator().next().getSchema();
    assertNotNull(schema);
    assertEquals(schema.getType(), "string");
}
Also used : PathItem(io.swagger.v3.oas.models.PathItem) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) Schema(io.swagger.v3.oas.models.media.Schema) 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 80 with Reader

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

the class ReaderTest method testClassWithGenericType.

@Test
public void testClassWithGenericType() {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(ClassWithGenericType.class);
    assertNotNull(openAPI);
    assertNotNull(openAPI.getComponents().getSchemas().get("IssueTemplateRet"));
    assertNotNull(openAPI.getComponents().getSchemas().get("B"));
    assertNotNull(openAPI.getComponents().getSchemas().get("B").getProperties().get("test"));
    assertEquals(((Schema) openAPI.getComponents().getSchemas().get("B").getProperties().get("test")).get$ref(), "#/components/schemas/IssueTemplateRet");
// Yaml.prettyPrint(openAPI);
}
Also used : OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

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