第 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} )。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.