Search in sources :

Example 26 with Paths

use of io.swagger.v3.oas.models.Paths in project swagger-core by swagger-api.

the class ReaderTest method testTicket3731.

@Test(description = "Constraints annotations in models")
public void testTicket3731() {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(Ticket3731Resource.class);
    String yaml = "openapi: 3.0.1\n" + "paths:\n" + "  /test/cart:\n" + "    get:\n" + "      summary: Get cart items\n" + "      description: Paging follows RFC 5005.\n" + "      operationId: getCart\n" + "      parameters:\n" + "      - name: pageSize\n" + "        in: query\n" + "        description: \"Number of items per page. Range[1, 200]\"\n" + "        schema:\n" + "          maximum: 200\n" + "          minimum: 1\n" + "          type: integer\n" + "          format: int32\n" + "          default: 50\n" + "      responses:\n" + "        default:\n" + "          description: default response\n" + "          content:\n" + "            '*/*':\n" + "              schema:\n" + "                type: array\n" + "                items:\n" + "                  type: string\n";
    SerializationMatchers.assertEqualsToYaml(openAPI, yaml);
    reader = new Reader(new OpenAPI());
    openAPI = reader.read(Ticket3731BisResource.class);
    SerializationMatchers.assertEqualsToYaml(openAPI, yaml);
}
Also used : Ticket3731BisResource(io.swagger.v3.jaxrs2.resources.Ticket3731BisResource) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Example 27 with Paths

use of io.swagger.v3.oas.models.Paths in project swagger-core by swagger-api.

the class ReaderTest method testGetResponsesWithComposition.

@Test(description = "Responses with composition")
public void testGetResponsesWithComposition() {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(ResponsesResource.class);
    String yaml = "openapi: 3.0.1\n" + "paths:\n" + "  /:\n" + "    get:\n" + "      summary: Simple get operation\n" + "      description: Defines a simple get operation with no inputs and a complex output\n" + "        object\n" + "      operationId: getWithPayloadResponse\n" + "      responses:\n" + "        \"200\":\n" + "          description: voila!\n" + "          content:\n" + "            application/json:\n" + "              schema:\n" + "                $ref: '#/components/schemas/SampleResponseSchema'\n" + "        default:\n" + "          description: boo\n" + "          content:\n" + "            '*/*':\n" + "              schema:\n" + "                $ref: '#/components/schemas/GenericError'\n" + "      deprecated: true\n" + "  /allOf:\n" + "    get:\n" + "      summary: Test inheritance / polymorphism\n" + "      operationId: getAllOf\n" + "      parameters:\n" + "      - name: number\n" + "        in: query\n" + "        description: Test inheritance / polymorphism\n" + "        required: true\n" + "        schema:\n" + "          type: integer\n" + "          format: int32\n" + "        example: 1\n" + "      responses:\n" + "        \"200\":\n" + "          description: bean answer\n" + "          content:\n" + "            application/json:\n" + "              schema:\n" + "                allOf:\n" + "                - $ref: '#/components/schemas/MultipleSub1Bean'\n" + "                - $ref: '#/components/schemas/MultipleSub2Bean'\n" + "  /anyOf:\n" + "    get:\n" + "      summary: Test inheritance / polymorphism\n" + "      operationId: getAnyOf\n" + "      parameters:\n" + "      - name: number\n" + "        in: query\n" + "        description: Test inheritance / polymorphism\n" + "        required: true\n" + "        schema:\n" + "          type: integer\n" + "          format: int32\n" + "        example: 1\n" + "      responses:\n" + "        \"200\":\n" + "          description: bean answer\n" + "          content:\n" + "            application/json:\n" + "              schema:\n" + "                anyOf:\n" + "                - $ref: '#/components/schemas/MultipleSub1Bean'\n" + "                - $ref: '#/components/schemas/MultipleSub2Bean'\n" + "  /oneOf:\n" + "    get:\n" + "      summary: Test inheritance / polymorphism\n" + "      operationId: getOneOf\n" + "      parameters:\n" + "      - name: number\n" + "        in: query\n" + "        description: Test inheritance / polymorphism\n" + "        required: true\n" + "        schema:\n" + "          type: integer\n" + "          format: int32\n" + "        example: 1\n" + "      responses:\n" + "        \"200\":\n" + "          description: bean answer\n" + "          content:\n" + "            application/json:\n" + "              schema:\n" + "                oneOf:\n" + "                - $ref: '#/components/schemas/MultipleSub1Bean'\n" + "                - $ref: '#/components/schemas/MultipleSub2Bean'\n" + "components:\n" + "  schemas:\n" + "    SampleResponseSchema:\n" + "      type: object\n" + "    GenericError:\n" + "      type: object\n" + "    MultipleSub1Bean:\n" + "      type: object\n" + "      description: MultipleSub1Bean\n" + "      allOf:\n" + "      - $ref: '#/components/schemas/MultipleBaseBean'\n" + "      - type: object\n" + "        properties:\n" + "          c:\n" + "            type: integer\n" + "            format: int32\n" + "    MultipleSub2Bean:\n" + "      type: object\n" + "      description: MultipleSub2Bean\n" + "      allOf:\n" + "      - $ref: '#/components/schemas/MultipleBaseBean'\n" + "      - type: object\n" + "        properties:\n" + "          d:\n" + "            type: integer\n" + "            format: int32\n" + "    MultipleBaseBean:\n" + "      type: object\n" + "      properties:\n" + "        beanType:\n" + "          type: string\n" + "        a:\n" + "          type: integer\n" + "          format: int32\n" + "        b:\n" + "          type: string\n" + "      description: MultipleBaseBean";
    SerializationMatchers.assertEqualsToYaml(openAPI, yaml);
}
Also used : OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Example 28 with Paths

use of io.swagger.v3.oas.models.Paths in project swagger-core by swagger-api.

the class ReaderTest method testExampleWithFilter.

@Test(description = "Example with Ref Filter")
public void testExampleWithFilter() {
    Components components = new Components();
    components.addExamples("Id", new Example().description("Id Example").summary("Id Example").value("1"));
    OpenAPI oas = new OpenAPI().info(new Info().description("info")).components(components);
    Reader reader = new Reader(oas);
    OpenAPI openAPI = reader.read(SimpleExamplesResource.class);
    OpenAPISpecFilter filterImpl = new RefExampleFilter();
    SpecFilter f = new SpecFilter();
    openAPI = f.filter(openAPI, filterImpl, null, null, null);
    String yaml = "openapi: 3.0.1\n" + "info:\n" + "  description: info\n" + "paths:\n" + "  /example:\n" + "    post:\n" + "      description: subscribes a client to updates relevant to the requestor's account\n" + "      operationId: subscribe\n" + "      parameters:\n" + "      - example:\n" + "          $ref: '#/components/examples/Id'\n" + "      requestBody:\n" + "        content:\n" + "          '*/*':\n" + "            schema:\n" + "              type: integer\n" + "              format: int32\n" + "      responses:\n" + "        default:\n" + "          description: default response\n" + "          content:\n" + "            '*/*':\n" + "              schema:\n" + "                $ref: '#/components/schemas/SubscriptionResponse'\n" + "components:\n" + "  schemas:\n" + "    SubscriptionResponse:\n" + "      type: object\n" + "      properties:\n" + "        subscriptionId:\n" + "          type: string\n" + "  examples:\n" + "    Id:\n" + "      summary: Id Example\n" + "      description: Id Example\n" + "      value: \"1\"\n";
    SerializationMatchers.assertEqualsToYaml(openAPI, yaml);
}
Also used : Components(io.swagger.v3.oas.models.Components) OpenAPISpecFilter(io.swagger.v3.core.filter.OpenAPISpecFilter) Example(io.swagger.v3.oas.models.examples.Example) Info(io.swagger.v3.oas.models.info.Info) OpenAPI(io.swagger.v3.oas.models.OpenAPI) AbstractSpecFilter(io.swagger.v3.core.filter.AbstractSpecFilter) OpenAPISpecFilter(io.swagger.v3.core.filter.OpenAPISpecFilter) SpecFilter(io.swagger.v3.core.filter.SpecFilter) Test(org.testng.annotations.Test)

Example 29 with Paths

use of io.swagger.v3.oas.models.Paths in project swagger-core by swagger-api.

the class ReaderTest method test2497.

@Test(description = "test resource with array in response content")
public void test2497() {
    Reader reader = new Reader(new OpenAPI());
    OpenAPI openAPI = reader.read(ResponseContentWithArrayResource.class);
    Paths paths = openAPI.getPaths();
    assertEquals(paths.size(), 1);
    PathItem pathItem = paths.get("/user");
    assertNotNull(pathItem);
    Operation operation = pathItem.getGet();
    assertNotNull(operation);
    ArraySchema schema = (ArraySchema) operation.getResponses().get("200").getContent().values().iterator().next().getSchema();
    assertNotNull(schema);
    assertEquals(schema.getItems().get$ref(), "#/components/schemas/User");
    assertEquals(openAPI.getComponents().getSchemas().get("User").getRequired().get(0), "issue3438");
}
Also used : PathItem(io.swagger.v3.oas.models.PathItem) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) 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 30 with Paths

use of io.swagger.v3.oas.models.Paths in project swagger-core by swagger-api.

the class ReaderTest method testParameterWithFilter.

@Test(description = "Responses with filter")
public void testParameterWithFilter() {
    Components components = new Components();
    components.addParameters("id", new Parameter().description("Id Description").schema(new IntegerSchema()).in(ParameterIn.QUERY.toString()).example(1).required(true));
    OpenAPI oas = new OpenAPI().info(new Info().description("info")).components(components);
    Reader reader = new Reader(oas);
    OpenAPI openAPI = reader.read(SimpleParameterResource.class);
    OpenAPISpecFilter filterImpl = new RefParameterFilter();
    SpecFilter f = new SpecFilter();
    openAPI = f.filter(openAPI, filterImpl, null, null, null);
    String yaml = "openapi: 3.0.1\n" + "info:\n" + "  description: info\n" + "paths:\n" + "  /:\n" + "    get:\n" + "      summary: Simple get operation\n" + "      description: Defines a simple get operation with a payload complex input object\n" + "      operationId: sendPayload\n" + "      parameters:\n" + "      - $ref: '#/components/parameters/id'\n" + "      responses:\n" + "        default:\n" + "          description: default response\n" + "          content:\n" + "            '*/*': {}\n" + "      deprecated: true\n" + "components:\n" + "  parameters: \n" + "    id:\n" + "      in: query\n" + "      description: Id Description\n" + "      required: true\n" + "      schema:\n" + "        type: integer\n" + "        format: int32\n" + "      example: 1\n";
    SerializationMatchers.assertEqualsToYaml(openAPI, yaml);
}
Also used : Components(io.swagger.v3.oas.models.Components) OpenAPISpecFilter(io.swagger.v3.core.filter.OpenAPISpecFilter) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) Parameter(io.swagger.v3.oas.models.parameters.Parameter) Info(io.swagger.v3.oas.models.info.Info) OpenAPI(io.swagger.v3.oas.models.OpenAPI) AbstractSpecFilter(io.swagger.v3.core.filter.AbstractSpecFilter) OpenAPISpecFilter(io.swagger.v3.core.filter.OpenAPISpecFilter) SpecFilter(io.swagger.v3.core.filter.SpecFilter) Test(org.testng.annotations.Test)

Aggregations

Test (org.testng.annotations.Test)154 OpenAPI (io.swagger.v3.oas.models.OpenAPI)145 SwaggerParseResult (io.swagger.v3.parser.core.models.SwaggerParseResult)75 OpenAPIV3Parser (io.swagger.v3.parser.OpenAPIV3Parser)70 PathItem (io.swagger.v3.oas.models.PathItem)61 Operation (io.swagger.v3.oas.models.Operation)46 Paths (io.swagger.v3.oas.models.Paths)45 Schema (io.swagger.v3.oas.models.media.Schema)40 ArraySchema (io.swagger.v3.oas.models.media.ArraySchema)36 IntegerSchema (io.swagger.v3.oas.models.media.IntegerSchema)33 Components (io.swagger.v3.oas.models.Components)32 ComposedSchema (io.swagger.v3.oas.models.media.ComposedSchema)27 ObjectSchema (io.swagger.v3.oas.models.media.ObjectSchema)27 StringSchema (io.swagger.v3.oas.models.media.StringSchema)25 ByteArraySchema (io.swagger.v3.oas.models.media.ByteArraySchema)23 Parameter (io.swagger.v3.oas.models.parameters.Parameter)23 Info (io.swagger.v3.oas.models.info.Info)21 MapSchema (io.swagger.v3.oas.models.media.MapSchema)21 ParseOptions (io.swagger.v3.parser.core.models.ParseOptions)21 DateSchema (io.swagger.v3.oas.models.media.DateSchema)19