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 文件中指定注解值:

  1. 在您选择的编辑器中打开 Fuse 项目的 pom.xml 文件。
  2. 找到 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>
  3. 如以下示例所示,将 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>
  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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.