Carapacik / swagger_parser

Dart package that takes an OpenApi definition file and generates REST clients based on retrofit and data classes for your project.
https://pub.dev/packages/swagger_parser
MIT License
94 stars 43 forks source link

Type support in one-element allOf, anyOf and oneOf #93

Closed StarProxima closed 11 months ago

StarProxima commented 11 months ago

OpenApi:

    "/api/bells/pagination": {
      "get": {
        "tags": [
          "bell"
        ],
        "summary": "Read Bells Pagination",
        "description": "API получения звонков с учетом пагинции.",
        "operationId": "read_bells_pagination_api_bells_pagination_get",
        "parameters": [
          {
            "required": false,
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/TimetableBellSortBy"
                }
              ]
            },
            "name": "sort_by",
            "in": "query"
          },
          {
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SortOrder"
                }
              ]
            },
            "name": "sort_order",
            "in": "query"
          }
        ]
      }
    },

Before:

  @GET('/api/bells/pagination')
  Future<PageBellInDb> readBellsPaginationApiBellsPaginationGet({
    @Query('sort_by') Object? sortBy,
    @Query('sort_order') Object? sortOrder,
  });

After:

  @GET('/api/bells/pagination')
  Future<PageBellInDb> readBellsPaginationApiBellsPaginationGet({
    @Query('sort_by') TimetableBellSortBy? sortBy,
    @Query('sort_order') SortOrder? sortOrder,
  });