【发布时间】: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?
-
也可以尝试在
<param ...>上设置dataType="String" -
@ClausIbsen,感谢您的及时回复。 Camel 2.17,Swagger Editor 来自 Swagger 主机。应该是最新的。我试过加
dataType="String",还是一样。 -
尝试2.20.2版本的骆驼
-
@ClausIbsen,尝试了 Camel 2.20.2 和 2.21。结果相同
标签: apache-camel swagger