5.4. Service Registry Maven プラグインを使用したアーティファクト参照の手動追加


一部の Service Registry アーティファクトタイプには、別のアーティファクトファイルへの アーティファクト参照 を含めることができます。再利用可能なスキーマまたは API アーティファクトを定義し、アーティファクト参照の複数の場所からそれらを参照することで、効率を高めることができます。

次のアーティファクトタイプはアーティファクト参照をサポートしています。

  • Apache Avro
  • Google Protobuf
  • JSON スキーマ
  • OpenAPI
  • AsyncAPI

このセクションでは、Service Registry Maven プラグインを使用して、Service Registry に保存されている単純な Avro スキーマアーティファクトへのアーティファクト参照を手動で登録する簡単な例を示します。この例では、次の Exchange スキーマアーティファクトが Service Registry にすでに作成されていることを前提としています。

交換スキーマ

{
  "namespace": "com.kubetrade.schema.common",
  "type": "enum",
  "name": "Exchange",
  "symbols" : ["GEMINI"]
}

次に、この例では、ネストされた Exchange スキーマアーティファクトへの参照を含む TradeKey スキーマアーティファクトを作成します。

Exchange スキーマへのネストされた参照を含む TradeKey スキーマ

{
  "namespace": "com.kubetrade.schema.trade",
  "type": "record",
  "name": "TradeKey",
  "fields": [
    {
      "name": "exchange",
      "type": "com.kubetrade.schema.common.Exchange"
    },
    {
      "name": "key",
      "type": "string"
    }
  ]
}

前提条件

  • クライアントアプリケーションの Maven プロジェクトを作成している。詳細は、Apache Maven のドキュメント を参照してください。
  • 参照される Exchange スキーマアーティファクトは、Service Registry にすでに作成されています。

手順

  1. apicurio-registry-maven-plugin を使用して TradeKey スキーマを登録するように Maven pom.xml ファイルを更新します。これには、次のように Exchange スキーマへのネストされた参照が含まれます。

    <plugin>
        <groupId>io.apicurio</groupId>
        <artifactId>apicurio-registry-maven-plugin</artifactId>
        <version>${apicurio-registry.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
                    <clientScope>MY-CLIENT-SCOPE</clientScope>
                    <artifacts>
                        <artifact>
                            <groupId>test-group</groupId> 4
                            <artifactId>TradeKey</artifactId>
                            <version>2.0</version>
                            <type>AVRO</type>
                            <file>
                                ${project.basedir}/src/main/resources/schemas/TradeKey.avsc
                            </file>
                            <ifExists>RETURN_OR_UPDATE</ifExists>
                            <canonicalize>true</canonicalize>
                            <references>
                                <reference> 5
                                    <name>com.kubetrade.schema.common.Exchange</name>
                                    <groupId>test-group</groupId>
                                    <artifactId>Exchange</artifactId>
                                    <version>2.0</version>
                                    <type>AVRO</type>
                                    <file>
                                        ${project.basedir}/src/main/resources/schemas/Exchange.avsc
                                    </file>
                                    <ifExists>RETURN_OR_UPDATE</ifExists>
                                    <canonicalize>true</canonicalize>
                                </reference>
                            </references>
                        </artifact>
                    </artifacts>
                </configuration>
            </execution>
        </executions>
    </plugin>
    1
    register を実行ゴールとして指定し、スキーマアーティファクトを Service Registry にアップロードします。
    2
    ../apis/registry/v2 エンドポイントを使用して Service Registry URL を指定します。
    3
    認証が必要な場合は、認証サーバーおよびクライアントの認証情報を指定できます。
    4
    Service Registry アーティファクトグループ ID を指定します。一意のグループ ID を使用しない場合は、default のグループを指定できます。
    5
    グループ ID、アーティファクト ID、バージョン、タイプ、および場所を使用して、Service Registry アーティファクト参照を指定します。この方法で、複数のアーティファクト参照を登録できます。
  2. たとえば、mvn package コマンドを使用して、Maven プロジェクトをビルドします。

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.