首页 > 解决方案 > YAML/Swagger 缩进错误

问题描述

嗨,我正在使用 swagger/yaml,我似乎遇到了错误:

映射条目的缩进错误 跳转到第 5 行

错误开始于 - 调用

这是我的代码

assembly:
    execute:
      {{jwtCheck|indent(width=6,indentfirst=True)}}
      - invoke:
        target-url: {{ clusters.cluster1.ingress_url }}$(request.path)$(request.search)
        verb: keep
      - gatewayscript:
        title: check exit code
        source: >-
            let m = apim.getvariable('message.status.code');
            if (m > 299) {
              let r= apim.getvariable('message.status.reason');
              apim.error('AppError', m, r, r);
            }

标签: yamlswagger

解决方案


好吧,看起来您正在使用 Jinja2,但您没有在问题中提及这一点。Swagger 本身不会使用模板引擎自动处理您的输入,因此 YAML 会将这些{{…}}部分解析为映射,这将导致错误。

如果使用 Jinja2 对输入进行预处理,则需要设置indentfirst=False,因为 Jinja2 表达式已经缩进 6 个空格,如果再次缩进,第一行将缩进 12 个空格,而其他行将缩进 6 个空格。


推荐阅读