Skip to content

[Kotlin] Improve client generator functionality #5730

@jimschubert

Description

@jimschubert
Description

This is a tracking issue for adding functionality to the Kotlin client generator.

  • Support "default" responses. Currently 200 OK isn't handled, for example, in PetApi#addPet. Revisit this. It appears to be an issue with the petstore.yaml used by most generators, which doesn't define a 200 or "default" response for PetApi#addPet.
  • Support enum type generation (see [kotlin] Support nested enums in models #5769)
  • Support inline/embedded enums (see [kotlin] Support nested enums in models #5769)
  • Add model tests for top-level enums and inline/embedded enums
  • Support collectionFormat (multi) (see [kotlin] support collection format multi #5792)
  • Test/Implement arrays of maps, arrays, objects
  • Test/Implement maps of arrays/maps, objects
  • Support allOf via composition
  • Support allOf via inheritance
  • (optional?) Per-request modification of headers,authorization
    • NOTE: ApiClient.defaultHeaders can be modified once to globally set headers for auth, user-agent, etc.
    • Test, or better implement basic auth support
    • Test, or better implement OAuth support
    • Test, or better implement apiKey auth
  • Generate Api tests
  • Generate Model tests
  • Generate Api docs (see [kotlin] api/model docs #5731)
  • Generate Model docs (see [kotlin] api/model docs #5731)
  • Update README.md to be more project-specific rather than generic information about the generator/template (see #[kotlin] api/model docs #5731)
  • Consider an option for android targeting (--additional-properties=android=true), to use built-in serialization and other features
  • Add support for Retrofit library (Ref: Generating client with Kotlin and Retrofit2 fails #6368)
  • Add an option to select date library (Ref: [Kotlin] select date library #6892)
Related issues

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions