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

在swagger-codegen中是否可以自定义新增Mustache模板变量?

swagger-codegen 自定义Mustache模板变量实现方案

完全支持自定义新增模板变量,官方文档列出的仅为内置默认变量,没有限制扩展,可按以下不同场景实现:

1. 全局级自定义变量(所有模板均可访问)

在你自定义的CustomCodeGen类的构造方法或processOpts()方法中,直接向内置的additionalPropertiesMap中插入自定义键值对即可:

public CustomCodeGen() {
    super();
    // 插入自定义全局变量
    additionalProperties.put("custom_param", "自定义全局变量值");
    // 原有模板路径等配置保留
    templateDir = "你的自定义模板存放路径";
}

插入后直接在任意mustache模板中使用{{custom_param}}即可读取值。

2. 接口操作级自定义变量(仅在{{#operation}}块内访问)

如果变量和单个接口操作绑定,重写fromOperation方法,向返回的CodegenOperation对象的vendorExtensions中插入值:

@Override
public CodegenOperation fromOperation(String path, String httpMethod, Operation operation, Map<String, Model> definitions, Swagger swagger) {
    CodegenOperation op = super.fromOperation(path, httpMethod, operation, definitions, swagger);
    // 静态赋值
    op.vendorExtensions.put("op_custom_param", "当前接口专属自定义值");
    // 也可直接读取yaml接口定义中x开头的自定义扩展字段
    if (operation.getVendorExtensions().containsKey("x-custom-config")) {
        op.vendorExtensions.put("op_custom_param", operation.getVendorExtensions().get("x-custom-config"));
    }
    return op;
}

模板中在{{#operation}}块内通过{{vendorExtensions.op_custom_param}}读取值即可。

3. 参数/模型级自定义变量

如果变量和单个参数、数据模型绑定,重写对应的fromParameter、fromModel方法,往返回的CodegenParameter、CodegenModel对象的vendorExtensions中插入值即可,使用方式和操作级变量一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 21:06:02