ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

OpenAPI Generator 如何用 debug 全局属性查看模板绑定的数据?

OpenAPI Generator 如何用 debug 全局属性查看模板绑定的数据? OpenAPI Generator 如何用 debug 全局属性查看模板绑定的数据【免费下载链接】openapi-generatorOpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)项目地址: https://gitcode.com/GitHub_Trending/op/openapi-generator当你自定义 Mustache 模板、或怀疑生成结果与模板变量对不上时最直接的办法是看生成器到底把什么数据传给了模板。OpenAPI Generator 提供了一组 debug 全局属性global properties开启后会在生成过程中把绑定到模板的数据结构以 JSON 形式打印出来。本文说明如何安装 CLI、传入这些属性、以及在输出中确认数据。准备安装 CLI 并准备一份 OpenAPI 文档调试功能依附于 CLI 的generate命令因此先安装 CLI。跨平台的安装方式是 npmnpm install openapitools/openapi-generator-cli -g安装后openapi-generator命令即可在命令行使用。另外需要一份合法的 OpenAPIv2 或 v3文档作为-i的输入本仓库自带一份可直接使用的示例modules/openapi-generator/src/test/resources/3_0/petstore.yaml后文命令中的petstore.yaml均指你自己环境下的 spec 文件。四个 debug 全局属性分别查看什么docs/debugging.md 的 Templates 一节列出了四个属性它们分别对应生成流程中不同类型的模板输入全局属性作用debugOpenAPI打印 OpenAPI Generator 看到的 OpenAPI Document 的 JSON 模型完整解析后的文档debugModels打印传给 model 模板的 JSON 数据debugOperations打印传给 operationapi模板的 JSON 数据debugSupportingFiles打印传给 supporting files 的 JSON 数据docs/global-properties.md 的属性表中这四个属性的可接受值均为none即以不带值的开关形式传入即可。主路径通过--global-property在单条命令中开启一个或多个属性可以与其他命令行选项一起传入多个属性用逗号分隔。下面是 docs/debugging.md 给出的示例命令openapi-generator generate -g go \ -o out \ -i petstore-minimal.yaml \ --global-property debugModels,debugOperations其中-g指定生成器示例为go换成你实际使用的生成器即可-o是输出目录-i是输入文档。如果你只想看某个维度的数据把属性列表改成对应那一个即可例如只查 model 数据就只传debugModels。需要说明的是docs/templating.md 中的示例使用了带值的形式如--global-property debugModelstrue例如openapi-generator generate -g go \ -o out \ -i petstore-minimal.yaml \ --global-property debugOpenAPItrue两种写法在文档中都出现过global-properties.md的属性表标注可接受值为none按debugging.md的不带值形式使用即可覆盖需求。可选路径写入JAVA_OPTS对全部调用生效如果调试期内的每次生成都需要这些数据可以把属性加入JAVA_OPTS环境变量export JAVA_OPTS${JAVA_OPTS} --global-property debugModels,debugOperations注意debugging.md中的提示这类全局可用的选项会对生成器的所有调用CLI 和插件生效。也就是说这条环境变量一旦导出后续每一次openapi-generator运行都会打印对应的 JSON调试完成后应将其从JAVA_OPTS中移除避免日志被大量 JSON 淹没。如何确认调试数据已经输出命令执行后JSON 数据会随生成日志打印到控制台。以debugModels为例docs/templating.md 给出了一个经过截断的输出示例文档示例实际输出的字段数量和键名取决于生成器与 spec[ { importPath : openapi.Pet, model : { name : Pet, classname : Pet, vars : [ { baseName : id, getter : getId, setter : setId, dataType : int64, required : true, isPrimitiveType : true } ] } } ]对照这份 JSON 就能判断模板中的变量如{{classname}}、{{#vars}}、{{baseName}}实际绑定到了什么值。templating.md还解释了输出中常见分组键的语义vars列出模型全部属性requiredVars/optionalVars按 spec 中是否标记required区分readWriteVars/readOnlyVars按是否标记readonly区分。如果你不确定某个模板片段运行在什么上下文中templating.md的 Mustache Tips 一节给出了技巧在模板中输出{{this}}可以查看当前上下文对象。补充全局属性的两种传入方式global-properties.md说明选择性地提供全局属性有两种方式一是作为 Java System Properties 传入二是通过工具选项传入——CLI 中是--global-propertyMaven 和 Gradle 插件中是globalProperty。这两者在 5.0 版本中成为区分方式4.x 时代曾存在的-D工具选项已被移除文档中给出的等价关系为java -Dmodels {jar} generate {opts}与java {jar} generate {opts} --global-propertymodels如果你通过 Maven 或 Gradle 插件而非 CLI 触发生成对应的属性应配置在插件的globalProperty中debug 属性同样适用。限制debug 属性只把模板数据打印到日志不会改变生成产物本身产物仍会正常写入-o指定目录。通过JAVA_OPTS设置的属性作用于该环境下的所有生成调用CLI 与插件调试完记得清理。本文的命令基于generate命令行的--global-property选项仓库内 bin/generate-samples.sh 一类批量脚本也能透传该选项debugging.md的示例即通过./bin/generate-samples.sh bin/configs/lua.yaml -- --global-property debugModelstrue这种--分隔形式传入但批量脚本会执行其目标范围内的多个生成任务单独调试时直接使用openapi-generator generate更可控。【免费下载链接】openapi-generatorOpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)项目地址: https://gitcode.com/GitHub_Trending/op/openapi-generator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表