4.2. 自定义 API 服务注解值
Maven Fabric8 插件默认运行 Fabric8 服务发现功能。增强器向 Fuse Rest DSL 项目的 API 服务添加了注解,以便 API 服务可以被 3scale 发现,如 Red Hat 3scale API 管理 管理门户 指南中的使用 服务发现 所述。
增强器对一些注解使用默认值,并从项目的 camel-context.xml
文件中获取其他注解的值。
您可以通过在 Fuse 项目 pom.xml
文件或 service.yml
文件中定义值来覆盖 camel-context.xml
文件中定义的默认值和值。(如果您在两个文件中定义值,增强器将使用 service.yml
文件中的值。) 有关您可以为 Fabric8 Service Discovery Enricher 指定的元素的描述,请参阅 第 4.3 节 “Fabric8 Service Discovery Enricher 元素”。
流程
在 Fuse 项目 pom.xml
文件中指定注解值:
-
在您选择的编辑器中打开 Fuse 项目的
pom.xml
文件。 找到
fabric8-maven-plugin
依赖项,如下例所示:<plugin> <groupId>org.jboss.redhat-fuse</groupId> <artifactId>fabric8-maven-plugin</artifactId> <version>${fuse.version}</version> <executions> <execution> <goals> <goal>resource</goal> <goal>build</goal> </goals> </execution> </executions> </plugin>
将 Fabric8 服务发现功能作为依赖项添加到 Fabric8-Maven 插件,如下例所示。
<plugin> <groupId>org.jboss.redhat-fuse</groupId> <artifactId>fabric8-maven-plugin</artifactId> <version>${fuse.version}</version> <executions> <execution> <goals> <goal>resource</goal> <goal>build</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>io.acme</groupId> <artifactId>myenricher</artifactId> <version>1.0</version> <configuration> <enricher> <config> <f8-service-discovery> <scheme>https</scheme> <path>/api</path> <descriptionPath>/api/openapi.json</descriptionPath> </f8-service-discovery> </config> </enricher> </configuration> </dependency> </dependencies> </plugin>
- 保存您的更改。
或者,您可以使用 src/main/fabric8/service.yml
片段覆盖注解值,如下例所示:
kind: Service name: metadata: labels: discovery.3scale.net/discoverable : "true" annotations: discovery.3scale.net/discovery-version : "v1" discovery.3scale.net/scheme : "https" discovery.3scale.net/path : "/api" discovery.3scale.net/port : "443" discovery.3scale.net/description-path : "/api/openapi.json" spec: type: LoadBalancer