【问题标题】:Swagger YAML generated by camel not compatible with Swagger Editor and UICamel 生成的 Swagger YAML 与 Swagger Editor 和 UI 不兼容
【发布时间】:2023-09-27 00:11:01
【问题描述】:

我有以下 Camel Rest 配置。我的请求和响应正文都是纯文本。

        <post uri="/swagger" produces="application/text" consumes="application/text"
              type="String" outType="String">
            <param name="body" type="body" description="Transaction to send" required="true" dataType="String"/>
            <responseMessage message="OK" code="200" />
            <route id="swaggerdemoRoute">
                <transform><constant>success</constant></transform>
            </route>
        </post>

camel生成的Yaml不兼容Swagger编辑器和UI。

  /swagger/swagger:
    post:
      tags:
      - "swagger"
      operationId: "swagger_rest"
      consumes:
      - "application/text"
      produces:
      - "application/text"
      parameters:
      - in: "body"
        name: "body"
        description: "Transaction to send"
        required: true
      responses:
        200:
          description: "OK"
          schema:
            type: "string"
            format: "String"

但是,我可以通过在“body”参数后添加 2 行来手动使其工作:

  - in: "body"
    name: "body"
    description: "Transaction to send"
    required: true
    schema:
      type: string

根据一些输入,我将 Camel 版本提升到 2.20.2 并在“param”部分添加 dataType="String"。仍然有同样的问题。此外,还会生成一个“operationId”,并且 Swagger 会抱怨它的重复。 如何通过骆驼 REST 配置使其工作?

【问题讨论】:

  • 您使用的是什么版本的 Camel 和 Swagger?
  • 也可以尝试在&lt;param ...&gt;上设置dataType="String"
  • @ClausIbsen,感谢您的及时回复。 Camel 2.17,Swagger Editor 来自 Swagger 主机。应该是最新的。我试过加dataType="String",还是一样。
  • 尝试2.20.2版本的骆驼
  • @ClausIbsen,尝试了 Camel 2.20.2 和 2.21。结果相同

标签: apache-camel swagger


【解决方案1】:

好的,对此进行了更多研究,是的,它是一个小错误。我已经记录了一张票并正在修复:https://issues.apache.org/jira/browse/CAMEL-12255

【讨论】:

    最近更新 更多