无法从openapi-generator胡子模板引用供应商扩展

时间:2019-09-04 22:15:03

标签: openapi-generator

我有一个具有一些x前缀属性的Open API 3规范yaml文件。我正在尝试使用openapi-generator-cli生成Angular Typescript SDK。但是,当我在模板胡须中引用该属性时,x前缀属性始终为空白。

来自yaml的示例端点(省略了无关的内容):

/about:
  get:
    summary: Information about this API
    x-foo: getAbout

我在Mustache模板中的使用方式(忽略了无关的内容):

{{#operation}}
  public {{x-foo}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}})

(基本上,我正在尝试使用x-foo参数作为正在生成的SDK中的方法名称。)

但是,生成的SDK将{{x-foo}}替换为空白:

public ()

这是我调用生成器的方式(没有换行符):

openapi-generator generate 
    --generator-name typescript-angular 
    --template-dir ./path/to/templates 
    --input-spec ./path/to/api.yml 
    --output ./output 
    --config ./path/to/config.json

如何在openapi-generator模板中引用供应商扩展/ x前缀的Open API 3属性?

1 个答案:

答案 0 :(得分:2)

供应商扩展不能在vendorExtensions父属性中使用,而不能直接使用。

因此,要从胡子模板访问x-foo属性,上面的示例将是:

{{#operation}}
  public {{vendorExtensions.x-foo}}({{#allParams}}{{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}})

要查看您要处理的对象(例如api spec yml或json的已解析版本),请运行带有-v标志的generate命令。已解析的规范是将要打印的许多内容之一。