5.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 服务发现功能增强 器指定的元素的信息,请参阅 Fabric8 服务发现功能丰富的元素。
流程
在 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