4.2. Service Registry REST API 명령을 사용하여 스키마 및 API 아티팩트 버전 관리
Core Registry API v2를 사용하여 스키마 및 API 아티팩트를 추가할 때 아티팩트 버전을 지정하지 않으면 Service Registry에서 자동으로 버전을 생성합니다. 새 아티팩트를 생성할 때 기본 버전은 1
입니다.
Service Registry는 X-Registry-Version
HTTP 요청 헤더를 문자열로 사용하여 버전을 지정할 수 있는 사용자 정의 버전 관리도 지원합니다. 사용자 지정 버전 값을 지정하면 아티팩트를 생성하거나 업데이트할 때 일반적으로 할당된 기본 버전이 재정의됩니다. 그런 다음 버전이 필요한 REST API 작업을 실행할 때 이 버전 값을 사용할 수 있습니다.
이 섹션에서는 Core Registry API v2를 사용하여 서비스 레지스트리에서 사용자 지정 Apache Avro 스키마 버전을 추가하고 검색하는 간단한 curl 기반 예제를 보여줍니다. 사용자 지정 버전을 지정하여 아티팩트를 추가하거나 업데이트하거나 아티팩트 버전을 추가할 수 있습니다.
사전 요구 사항
- 사용자 환경에 서비스 레지스트리가 설치되어 실행 중입니다.
프로세스
/groups/{group}/artifacts
작업을 사용하여 레지스트리에 아티팩트 버전을 추가합니다. 다음 예제curl
명령은 공유 가격 애플리케이션에 대한 간단한 아티팩트를 추가합니다.$ curl -X POST -H "Content-Type: application/json; artifactType=AVRO" \ -H "X-Registry-ArtifactId: my-share-price" -H "X-Registry-Version: 1.1.1" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ --data '{"type":"record","name":" p","namespace":"com.example", \ "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \ MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts
-
이 예제에서는
my-share- price
및 버전1.1.1
의 아티팩트 ID를 사용하여 Avro 스키마 아티팩트를 추가합니다. 버전을 지정하지 않으면 Service Registry에서 기본 버전1
을 자동으로 생성합니다. -
MY-REGISTRY-URL
은 서비스 레지스트리가 배포된 호스트 이름입니다. 예:my-cluster-service-registry-myproject.example.com
. -
이 예제에서는 API 경로에
my-group
의 그룹 ID를 지정합니다. 고유한 그룹 ID를 지정하지 않으면 API 경로에../groups/default
를 지정해야 합니다.
-
이 예제에서는
응답에 사용자 정의 아티팩트 버전이 추가되었는지 확인하는 예상 JSON 본문이 포함되어 있는지 확인합니다. 예를 들면 다음과 같습니다.
{"createdBy":"","createdOn":"2021-04-16T10:51:43+0000","modifiedBy":"", "modifiedOn":"2021-04-16T10:51:43+0000","id":"my-share-price","version":"1.1.1", "type":"AVRO","globalId":3,"state":"ENABLED","groupId":"my-group","contentId":3}
-
아티팩트를 추가할 때
1.1.1
의 사용자 지정 버전이 지정되었습니다. -
이는 레지스트리에 추가된 세 번째 아티팩트이므로 글로벌 ID 및 콘텐츠 ID의 값은
3
입니다.
-
아티팩트를 추가할 때
API 경로에서 아티팩트 ID 및 버전을 사용하여 레지스트리에서 아티팩트 콘텐츠를 검색합니다. 이 예에서 지정된 ID는
my-share- price
이고 버전은1.1.1
입니다.$ curl -H "Authorization: Bearer $ACCESS_TOKEN" \ MY-REGISTRY-URL/apis/registry/v2/groups/my-group/artifacts/my-share-price/versions/1.1.1 {"type":"record","name":"price","namespace":"com.example", "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}
추가 리소스