第4章 REST API を使用した Service Registry コンテンツの管理
クライアントアプリケーションは、Registry REST API 操作を使用して、Service Registry のスキーマおよび API アーティファクトを管理できます (例: 実稼働環境用にデプロイされる CI/CD パイプラインなど)。Registry REST API は、レジストリーに保存されるアーティファクト、バージョン、メタデータ、およびルールの作成、読み取り、更新、および削除操作を提供します。詳細は、Apicurio Registry REST API のドキュメント を参照してください。
本章では、Service Registry core REST API について説明し、これを使用してレジストリーに保存されているスキーマおよび API アーティファクトを管理する方法を説明します。
4.1. Service Registry REST API コマンドを使用したスキーマおよび API アーティファクトの管理 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Service Registry コア REST API を使用して、Service Registry で Apache Avro スキーマアーティファクトを追加および取得する簡単な curl ベースの例を示します。
前提条件
- Service Registry が環境にインストールされ、実行している
手順
/groups/{group}/artifacts
操作を使用してアーティファクトをレジストリーに追加します。以下のcurl
コマンドの例は、株価アプリケーションの単純なアーティファクトを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
この例では、
share-price
のアーティファクト ID を持つ Avro スキーマアーティファクトを追加します。一意のアーティファクト ID を指定しない場合、Service Registry は UUID として自動的に生成します。 -
MY-REGISTRY-URL
は、Service Registry がデプロイされているホスト名です。例:my-cluster-service-registry-myproject.example.com
-
この例では、API パスで
my-group
のグループ ID を指定します。一意のグループ ID を指定しない場合は、API パスで../groups/default
を指定する必要があります。
-
この例では、
応答に、アーティファクトが追加されたことを確認するために、想定される JSON body が含まれていることを確認します。以下に例を示します。
{"createdBy":"","createdOn":"2021-04-16T09:07:51+0000","modifiedBy":"", "modifiedOn":"2021-04-16T09:07:51+0000","id":"share-price","version":"1", "type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2}
{"createdBy":"","createdOn":"2021-04-16T09:07:51+0000","modifiedBy":"", "modifiedOn":"2021-04-16T09:07:51+0000","id":"share-price","version":"1", "type":"AVRO","globalId":2,"state":"ENABLED","groupId":"my-group","contentId":2}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
アーティファクトの追加時にバージョンが指定されなかったため、デフォルトのバージョン
1
が自動的に作成されます。 -
これはレジストリーに追加された 2 つ目のアーティファクトであるため、グローバル ID とコンテンツ ID の値は
2
になります。
-
アーティファクトの追加時にバージョンが指定されなかったため、デフォルトのバージョン
API パスでアーティファクト ID を使用して、レジストリーからアーティファクトコンテンツを取得します。この例では、指定された ID は
share-price
です。curl -H "Authorization: Bearer $ACCESS_TOKEN" \ MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts/share-price \ {"type":"record","name":"price","namespace":"com.example",
$ curl -H "Authorization: Bearer $ACCESS_TOKEN" \ MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts/share-price \ {"type":"record","name":"price","namespace":"com.example", "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow