5.2. 自定义 API 服务注解值
Maven Fabric8 插件默认运行 Fabric8 服务发现 Enricher。增强器为 Fuse Rest DSL 项目的 API 服务添加注解,以便 API 服务可由 3scale 发现,如 Red Hat 3scale API Management Admin Portal 指南中的使用 服务发现 所述。
增强器对一些注解使用默认值,并从项目的 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