acacode / acacode/swagger-typescript-api

Circular reference error in type definitions if subclasses appear before baseclass in schema.

未关闭
#637 1 条评论 7 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
TypeScript
星标
4.1k
派生
436
PR 合并指标
30 天内没有已合并 PR

描述

We have the following schema components in our swagger.json file:

```
"Gjennomforing_4_3": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Tvangsprotokoll"
}
],
"additionalProperties": false
},
"Gjennomforing_4_4": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Tvangsprotokoll"
}
],
"properties": {
"administrertLegemiddel": {
"type": "string",
"nullable": true
},
"administrertDose": {
"type": "string",
"nullable": true
},
"administrasjonsform": {
"type": "string",
"nullable": true
}
},
"additionalProperties": false
},
"Gjennomforing_4_8": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/Tvangsprotokoll"
}
],
"properties": {
"endringUnderGjForing": {
"$ref": "#/components/schemas/VolvenKodeverkValue9272"
},
"beskrivelseAvGjForing": {
"type": "string",
"nullable": true
},
"endretTidspunkt": {
"type": "string",
"format": "date-time",
"nullable": true
}
},
"additionalProperties": false
},
"Tvangsprotokoll": {
"required": [
"$type"
],
"type": "object",
"properties": {
"$type": {
"type": "string"
},
"id": {
"type": "string",
"format": "uuid"
},
"vedtakId": {
"type": "string",
"format": "uuid"
},
"pasientId": {
"type": "string",
"format": "uuid"
},
"fagligAnsvarlig": {
"$ref": "#/components/schemas/Ansvarlig"
},
"startTidspunkt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"avsluttetTidspunkt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"merknad": {
"type": "string",
"nullable": true
},
"lopenummer": {
"type": "integer",
"format": "int32",
"nullable": true
}
},
"additionalProperties": false,
"discriminator": {
"propertyName": "$type",
"mapping": {
"Gjennomforing_4_3": "#/components/schemas/Gjennomforing_4_3",
"Gjennomforing_4_4": "#/components/schemas/Gjennomforing_4_4",
"Gjennomforing_4_8": "#/components/schemas/Gjennomforing_4_8"
}
}
},
```

After running codegen on this schema the output is the following for the 3 subclasses (`Gjennomforing_4_3`, `Gjennomforing_4_4`, `Gjennomforing_4_8`) of Tvangsprotokoll:

![image](https://github.com/acacode/swagger-typescript-api/assets/7986195/060c3456-722f-434f-95fb-e672220dbb26)

Here the subclasses are extending Tvangsprotokoll instead of the BaseTvangsprotokoll class.

We believe this is a bug with the order they are parsed in. As the Base class come after the subclasses in the schema.components list.
Everything worked fine when we renamed Tvangsprotokoll to Gjennomforing

贡献指南

这个仓库没有索引到贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。