当前位置: 首页 > 知识库问答 >
问题:

无法从openapi生成器mustache模板引用供应商扩展

易镜
2023-03-14

我有一个开放的API3规范yaml文件,它有一些x前缀属性。我正在尝试使用openapi generator cli生成Angular Typescript SDK。但是,当我引用模板mustache中的属性时,x前缀属性始终为空。

yaml中的endpoint示例(省略了不相关的内容):

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

我如何在胡须模板中使用它(不相关的内容省略):

{{#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生成器模板中引用供应商扩展/x前缀的Open API 3属性?

共有1个答案

慕翰学
2023-03-14

供应商扩展在vendorExtensions父属性中提供,而不是直接提供。

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

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

要查看您正在处理的对象(例如api spec yml或json的解析版本),请使用-v标志运行生成命令。将打印出来的许多东西之一是解析后的规范。

 类似资料:
  • mip-mustache 模板引擎,是 MIP 封装了 Mustache.js 而形成的模板,以此来对用户提供定义模板的功能。 标题 内容 类型 通用 支持布局 不使用布局 所需脚本 https://c.mipcdn.com/static/v2/mip-mustache/mip-mustache.js 定义 mip-mustache 模板 mip-mustache 模板需要通过 <template

  • 我在一个带注释的对象中有几个枚举,如: 其中枚举定义为: 使用Openapi3,我可以生成一个swagger文档。我的问题是,和,翻译方式不同,如: 我希望< code>Enum2与< code>Enum1一样被记录,因此具有实际的枚举值。有什么方法可以强制这样做,或者解释为什么会这样?两个枚举基本上与示例中的相同。

  • 问题内容: 我有一个没有Javadoc的大型代码库,我想运行一个程序来编写带有基本Javadoc信息的框架(例如,为每个方法的参数写@param …),所以我只需要填补剩下的空白。 有人知道一个好的解决方案吗? 编辑: JAutodoc是我一直在寻找的东西。它具有Ant任务,一个Eclipse插件,并使用Velocity作为模板定义。 问题答案: eclipse的JAutodoc插件完全可以满足您

  • 问题内容: 我如何在Supplier这里用lambda表达式替换代码 上面这段代码的输出是: 问题答案: 如果您必须专门使用以下内容: 编辑:使用IntStream.generate,您可以将其执行为 注意:就API设计而言,更好的解决方案肯定是利用这种用例。

  • 我们不允许寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便用事实和引用来回答。 我正在学习OpenAPI规范。是否有任何工具可以模拟基于YAML格式的OpenAPI定义的API?

  • 我正试着把a类扩展成AX类。所以,我也扩展了abuilder。但是,虽然我能够使用以下方法创建类a的对象: 同样的方法对AX不起作用。当我尝试这样做时: