第 281 章 REST Swagger 组件
从 Camel 版本 2.19 开始提供
rest-swagger 配置来自 Swagger (Open API)规格文档的 rest producer,并委派给实现 RestProducerFactory 接口的组件。目前已知的工作组件是:
Maven 用户需要将以下依赖项添加到这个组件的 pom.xml
中:
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-rest-swagger</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
281.1. URI 格式
rest-swagger:[specificationPath#]operationId
其中 operationId
是 Swagger 规格中的操作 ID,specificationPath
是规格的路径。如果没有指定 specificationPath
,则默认为 swagger.json
。查找机制使用 Camels ResourceHelper
来加载资源,这意味着您可以使用 CLASSPATH 资源(classpath:my-specification.json
)、文件(file:/some/path.json
)、web (http://api.example.com/swagger.json
)或引用 bean (ref:nameOfBean
)或使用 bean (bean:nameOfBean.methodName
)的方法来获取规格资源,失败于 Swagger 的资源,失败。
此组件不充当 HTTP 客户端,它将该客户端委派给上述另一个组件。查找机制搜索实施 RestProducerFactory 接口并使用的单一组件。如果 CLASSPATH 包含多个,则应设置 property componentName
来指示要委派哪些组件。
大多数配置都从 Swagger 规范获取,但存在 选项,通过在组件或端点中指定它们来覆盖它们。通常,如果主机
或 basePath
与规格不同,则您只需要覆盖主机或 basePath。
host
参数应包含包含方案、主机名和端口号的绝对 URI,例如: https://api.example.com
使用 componentName
,您可以指定用于执行请求的组件,此命名组件需要存在于 Camel 上下文中,并实现所需的 RestProducerFactory 接口 swig-wagonas 处理顶部列出的组件。
如果您没有在组件或端点级别指定 componentName,则会搜索 CLASSPATH 以获得合适的委派。CLASSPATH 上应该只有一个组件,它实现了 RestProducerFactory 接口,以便它正常工作。
此组件的端点 URI 是很宽松的,这意味着除了消息标头外,您还可以将 REST 操作的参数指定为端点参数,对于所有后续调用来说,这些将是恒定的,因此,仅在所有后续调用中持续使用此功能的参数(如 /api/7.13/users/{id}
)。