acacode / acacode/swagger-typescript-api

Making fields required during use of allOf

未關閉
#275 0 則留言 16 個 reaction 已指派 0 人 在 GitHub 檢視
enhancement
主要語言
TypeScript
星號
4.1k
分支
436
PR 合併指標
30 天內沒有已合併 PR

描述

Sometime we have data structures which can be inherited in every way except for whether or not parts of them are required. For example, if you POST a request then this may have empty fields filled in with defaults, and the returned data could be always fully returned. Having `required` work on parts from an schema while using `anyOf` would be fantastic, and appears to be intended:
https://github.com/OAI/OpenAPI-Specification/issues/1870

**Example:**
```yml
schemas:
UserCreate:
type: object
required:
- email
properties:
name: string
email: string
image: string
UserResponse:
allOf:
- $ref: '#/components/schemas/UserCreate'
- type: object
required:
- id
- image
properties:
id: string
```

Right now this outputs:
```ts
export interface UserCreate {
name?: string;
email: string;
image?: string;
}

export type UserResponse = UserCreate & {
id: string;
}
```

But I would expect something more like:
```ts
export interface UserCreate {
name?: string;
email: string;
image?: string;
}

export type UserResponse = UserCreate & {
id: string;
image: string;
}
```

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。