我正在处理大量 OpenAPI 3.0.0 文件,我需要从中创建 html 页面。每个 OpenAPI 文件代表大对象模型中的一个实体。Swagger Viewer、redoc-cli 和其他工具无法生成我需要的文档类型。这是一个示例文件:
{
"openapi": "3.0.0",
"paths": {},
"info": {
"title": "My File",
"version": "1.0.0"
},
"components": {
"schemas": {
"my_entity_name": {
"type": "object",
"description": "....",
"properties": {
"propertyOne": {
"type": "string",
"description": "..."
},
"propertyTwo": {
"type": "string",
"format": "date",
"description": "..."
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的解决方案中,我使用 jq 来解析文件(macOS、ksh)。由于有这么多,我想将一个环境变量传递给jq。这在 shell 中很简单:
% entity_name=my_entity_name
% jq -r 'select(.components.schemas.'$entity_name'.properties != null)' file.json
Run Code Online (Sandbox Code Playgroud)
在脚本文件中,方法是类似的,我得到了我期望的结果。但是,考虑到我想要做的事情的性质,我想使用 jq -f 选项将 jq 命令放入文件中。
我尝试将以下内容放入名为的文件中jqscript.jq:
select(.components.schemas.'$entity_name'.properties …Run Code Online (Sandbox Code Playgroud)