第 281 章 REST Swagger 组件


从 Camel 版本 2.19 开始提供

rest-swagger 配置来自 Swagger (Open API)规格文档的其余制作者,并委派给实施 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。lookup 机制使用 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 客户端,它将委托给上述另一个组件。lookup 机制搜索实施 RestProducerFactory 接口并使用的单个组件。如果 CLASSPATH 包含多个,则属性 componentName 应设置为指示要委派的组件。

大多数配置都从 Swagger 规格中获取,但 选项存在,可以通过在组件或端点上指定它们来覆盖它们。通常,如果它们与规格不同,您只需要覆盖 hostbasePath

注意

host 参数应包含包含方案、主机名和端口号的绝对 URI,例如: https://api.example.com

使用 componentName 指定用于执行请求的组件,这个指定组件需要在 Camel 上下文中存在,并实施所需的 RestProducerFactory 接口进行顶部列出的组件。

如果您没有在组件或端点级别指定 componentName,则会搜索 CLASSPATH 以获得合适的委托。在 CLASSPATH 中应该只有一个组件,它实现 RestProducerFactory 接口才能正常工作。

此组件的端点 URI 被宽松,这意味着除了消息标头外,您还可以将 REST 操作的参数指定为端点参数,这些参数将始终用于后续调用,因此仅对路径中的所有调用(如 /api/7.12/users/{id} )的 API 版本意外使用此功能。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.