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
87 stars 33 forks source link

Schemas doesn't inherits json_serializer #233

Open beerline opened 1 month ago

beerline commented 1 month ago

Steps to reproduce

  1. define json_serializer: freezed in swagger_parser
  2. define two schemas without json_serializer
  3. run dart run swagger_parser

Expected results

for both schemas should be generated freezed files

Actual results

for both schemas generated json_serializable

Your OpenApi snippet

swagger_parser:
  output_directory: lib/core/api
  language: dart

  json_serializer: freezed

  required_by_default: true
  root_client: true
  export_file: true
  put_in_folder: true
  put_clients_in_folder: true
  path_method_name: true
  enums_to_json: true
  enums_parent_prefix: false
  unknown_enum_value: false
  mark_files_as_generated: true
  original_http_response: false

  schemes:
    - schema_path: api_schemas/fapi.json
      root_client_name: FApiClient
      output_directory: lib/core/api/fapi
      client_postfix: FApi

    - schema_path: api_schemas/credits_api.json
      root_client_name: CreditsClient
      name: CreditsApi
      output_directory: lib/core/api/credits_api
      client_postfix: Credits

Code sample

No response

Logs

Logs ```console [Paste your logs here] ```

Dart version and used packages versions

Dart version ```console Dart SDK version: 3.3.4 (stable) (Tue Apr 16 19:56:12 2024 +0000) on "macos_x64" ```
Packages version ```console swagger_parser: ^1.17.3 ```
StarProxima commented 1 month ago

Does this manifest only for json_serializer or for other parameters too?

beerline commented 1 month ago

@StarProxima i can confirm same error for unknown_enum_value parameter.

I looked through source files and i found that at swagger_parser-1.17.3/lib/src/config/swp_config.dart:279 getting default config overrides only outputDirectory. So if no parameter was defined under schema it would take default value, which is for json_serializer is JsonSerializer.jsonSerializable.