第5章 Maven プラグインを使用した Service Registry コンテンツの管理

本章では、Service Registry Maven プラグインを使用して、レジストリーに保存されているスキーマおよび API アーティファクトを管理する方法を説明します。

前提条件

  • 1章Service Registry の概要 を参照
  • Service Registry が環境にインストールされ、実行されている。
  • Maven が使用している環境にインストールおよび設定されている。

5.1. Maven プラグインを使用したスキーマおよび API アーティファクトの追加

Maven プラグインの最も一般的なユースケースは、ビルド中にアーティファクトを追加することです。これは、register 実行目標を使用して実現できます。

前提条件

  • Service Registry が環境にインストールされ、実行している

手順

Maven pom.xml ファイルを更新して、 apicurio-registry-maven-plugin を使用してアーティファクトを登録します。以下の例は、Apache Avro および GraphQL スキーマの登録を示しています。

<plugin>
  <groupId>io.apicurio</groupId>
  <artifactId>apicurio-registry-maven-plugin</artifactId>
  <version>${apicurio.version}</version>
  <executions>
      <execution>
        <phase>generate-sources</phase>
        <goals>
            <goal>register</goal>  1
        </goals>
        <configuration>
            <registryUrl>MY-REGISTRY-URL/apis/registry/v2</registryUrl> 2
            <authServerUrl>MY-AUTH-SERVER</authServerUrl>
            <clientId>MY-CLIENT-ID</clientId>
            <clientSecret>MY-CLIENT-SECRET</clientSecret> 3
            <artifacts>
                <artifact>
                    <groupId>TestGroup</groupId> 4
                    <artifactId>FullNameRecord</artifactId>
                    <file>${project.basedir}/src/main/resources/schemas/record.avsc</file>
                    <ifExists>FAIL</ifExists>
                </artifact>
                <artifact>
                    <groupId>TestGroup</groupId>
                    <artifactId>ExampleAPI</artifactId> 5
                    <type>GRAPHQL</type>
                    <file>${project.basedir}/src/main/resources/apis/example.graphql</file>
                    <ifExists>RETURN_OR_UPDATE</ifExists>
                    <canonicalize>true</canonicalize>
                </artifact>
            </artifacts>
        </configuration>
    </execution>
  </executions>
 </plugin>
  1. スキーマアーティファクトをレジストリーにアップロードするための実行目標として register を指定します。
  2. ../apis/registry/v2 エンドポイントでService Registry URL を指定します。
  3. 認証が必要な場合は、認証サーバーおよびクライアントの認証情報を指定できます。
  4. Service Registry アーティファクトグループ ID を指定します。一意のグループ ID を使用しない場合は、default のグループを指定できます。
  5. 指定したグループ ID、アーティファクト ID、および場所を使用して複数のアーティファクトを登録できます。