You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用openapi-generator从OpenAPI 3.0规范生成TypeScript联合类型?

实现方案

可以通过在OpenAPI规范中为status字段添加enum约束来实现需求。修改后的OpenAPI 3.0.3配置如下:

UpdateAuthzResponse:
  description: > 
    'APPROVED' or 'REQUESTED'
  type: object
  required: [status]
  properties:
    status:
      type: string
      enum: ['APPROVED', 'REQUESTED']

使用openapi-generator 6.0.0生成TypeScript代码时,会自动生成你需要的联合类型:

export interface UpdateAuthzResponse {
    status: 'APPROVED' | 'REQUESTED';
}

同时,Java端会生成对应的枚举类,示例如下:

public enum StatusEnum {
    APPROVED("APPROVED"),
    REQUESTED("REQUESTED");

    private final String value;

    StatusEnum(String value) {
        this.value = value;
    }

    @Override
    @JsonValue
    public String toString() {
        return String.valueOf(value);
    }

    @JsonCreator
    public static StatusEnum fromValue(String value) {
        for (StatusEnum b : StatusEnum.values()) {
            if (b.value.equals(value)) {
                return b;
            }
        }
        throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }
}

这个配置完全符合OpenAPI 3.0.3规范,且适配你当前使用的openapi-generator 6.0.0版本,无需更换工具即可满足需求。

内容的提问来源于stack exchange,提问作者Shorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:20:30