cyclosproject / ng-openapi-gen

An OpenAPI 3.0 codegen for Angular
MIT License
397 stars 132 forks source link

added support for explicit discriminator values on derived types #275

Closed fdipuma closed 1 year ago

fdipuma commented 1 year ago

Adds support for discriminator properties on derived types when used in conjuction with oneOf + allOf.

Fixes #227

Willem1987 commented 1 year ago

We are working with enum discriminators on the java side of our openapi generation and it seems this change might have broken something for us. "SomeDto": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64" }, "instanceType": { "$ref": "#/components/schemas/Instancetype" } }, "discriminator": { "mapping": { "A": "#/components/schemas/A", "B": "#/components/schemas/B" | } } } ... "Instancetype": { "type": "string", "enum": [ "A", "B" ] } This now generates models as export interface SomeDto { id?: number; instanceType?: Instancetype; } export type A = SomeDto & { 'someNewField'?: string } & { 'instanceType': 'A'; };

Is there something we can do? Should we wait for openapi generator V7 before updating ng-openapi-gen? https://github.com/OpenAPITools/openapi-generator/issues/12412

I don't see any way to solve this using templates.