5.3. Service Registry Maven プラグインを使用したアーティファクト参照の追加
Apache Avro、Protobuf、JSON スキーマなどの Service Registry アーティファクトタイプには、あるアーティファクトファイルから別のアーティファクトファイルへの アーティファクト参照 を含めることができます。再利用可能なスキーマと API アーティファクトを定義し、アーティファクト参照で複数の場所から参照して、効率を高めることができます。
このセクションでは、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"
}
]
}
前提条件
- Service Registry が環境にインストールされ、実行している
-
Exchangeスキーマアーティファクトは Service Registry にすでに作成されている
手順
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>
<id>register-artifact</id>
<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>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>-
スキーマアーティファクトをレジストリーにアップロードするための実行目標として
registerを指定します。 -
../apis/registry/v2エンドポイントでService Registry URL を指定します。 - 認証が必要な場合は、認証サーバーおよびクライアントの認証情報を指定できます。
-
Service Registry アーティファクトグループ ID を指定します。一意のグループ ID を使用しない場合は、
defaultのグループを指定できます。 - グループ ID、アーティファクト ID、バージョン、タイプ、および場所を使用して、Service Registry アーティファクト参照を指定します。この方法で、複数のアーティファクト参照を登録できます。