5.2. 自定义 API 服务注解值


默认情况下,Maven Fabric8 插件运行 Fabric8 服务发现功能增强器。增强器向 Fuse Rest DSL 项目的 API 服务添加了注解,以便 API 服务可以被 3scale 发现,如 Red Hat 3scale API 管理 管理门户指南中的使用服务发现 所述。

enricher 为一些注解使用默认值,并从项目的 camel-context.xml 文件中获取其他注解的值。

您可以通过在 Fuse 项目 pom.xml 文件中定义值或 service.yml 文件中定义的值来覆盖 camel-context.xml 文件中定义的值。(如果您在两个文件中都定义了值,enricher 将使用 service.yml 文件中的值。) 请参阅 Fabric8 Service Discovery Enricher 元素 以了解您可以为 Fabric8 Service Discovery Enricher 指定元素的描述。

流程

在 Fuse 项目 pom.xml 文件中指定注解值:

  1. 在您选择的编辑器中打开 Fuse 项目的 pom.xml 文件。
  2. 找到 openshift-maven-plugin 依赖项,如下例所示:

    <plugin>
            <groupId>org.jboss.redhat-fuse</groupId>
            <artifactId>openshift-maven-plugin</artifactId>
            <version>${fuse.version}</version>
            <executions>
              <execution>
                <goals>
                  <goal>resource</goal>
                  <goal>build</goal>
                </goals>
              </execution>
            </executions>
      </plugin>
    Copy to Clipboard
  3. 将 Fabric8 Service Discovery Enricher 作为依赖项添加到 openshift-maven 插件,如下例所示。

    <plugin>
      <groupId>org.jboss.redhat-fuse</groupId>
      <artifactId>openshift-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>
    Copy to Clipboard
  4. 保存您的更改。

另外,您可以使用 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
Copy to Clipboard
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat