acacode / acacode/swagger-typescript-api

API client with discriminators is generated incorrectly

Đang mở
#685 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
4.1k
Fork
436
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Hi, here's an example schema:

Example schema

```yaml
openapi: 3.0.1
info:
title: Example API
version: v1
paths:
/pet:
post:
summary: Create pet
requestBody:
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
type: object
required:
- type
- payload
discriminator:
propertyName: type
mapping:
CAT: '#/components/schemas/cat'
DOG: '#/components/schemas/dog'
properties:
type:
$ref: '#/components/schemas/pet_kind'
payload:
type: object
oneOf:
- $ref: '#/components/schemas/cat'
- $ref: '#/components/schemas/dog'
responses:
'204':
description: all good!

components:
schemas:
cat:
type: object
properties:
name:
type: string
breed:
type: string
dog:
type: object
properties:
name:
type: string
breed:
type: string
pet_kind:
type: string
description: type of animal
enum: [CAT, DOG]
```

it's a pretty simple schema with discriminator on the property `type` that determines the `payload` object. There's an enumb called `pet_kind` which has two options `CAT` and `DOG`.

## Expected behaviour

It's expected, that the `pet_kind` enum would be generated as `PetKind` in the data definition section and would be referenced in the API client.

## Actual begaviour

The `pet_kind` enum is generated correctly in the data definition secion:

```ts
/** type of animal */
export enum PetKind {
CAT = "CAT",
DOG = "DOG",
}
```

but is *not* referenced correctly in the API client, it is referenced as *`pet_kind`* which gives runtime and type errors:

```ts
postPet: (
data: {
data: BaseNull & (BaseNullTypeMapping | BaseNullTypeMapping);
},
params: RequestParams = {},
) =>
this.request({
path: `/pet`,
method: "POST",
body: data,
type: ContentType.Json,
...params,
}),
};
}

```

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.