1.2. 서비스 레지스트리의 스키마 및 API 아티팩트


이벤트 스키마 및 API 설계와 같은 서비스 레지스트리에 저장된 항목은 레지스트리 아티팩트 라고 합니다. 다음은 간단한 공유 가격 애플리케이션에 대한 JSON 형식의 Apache Avro 스키마 아티팩트의 예를 보여줍니다.

Avro 스키마 예

{
   "type": "record",
   "name": "price",
   "namespace": "com.example",
   "fields": [
       {
           "name": "symbol",
           "type": "string"
       },
       {
           "name": "price",
           "type": "string"
       }
   ]
}

서비스 레지스트리에서 스키마 또는 API 설계가 아티팩트로 추가되면 클라이언트 애플리케이션에서 해당 스키마 또는 API 설계를 사용하여 런타임 시 클라이언트 메시지가 올바른 데이터 구조를 준수하는지 확인할 수 있습니다.

스키마 및 API 그룹

아티팩트 그룹은 스키마 또는 API 아티팩트의 선택적 이름이 지정된 컬렉션입니다. 각 그룹에는 일반적으로 특정 애플리케이션 또는 조직에 속하는 단일 엔티티에 의해 관리되는 논리적으로 관련된 스키마 또는 API 설계 세트가 포함되어 있습니다.

스키마 및 API 설계를 추가할 때 선택적 아티팩트 그룹을 생성하여 Service Registry에서 구성할 수 있습니다. 예를 들어 개발프로덕션 애플리케이션 환경 또는 영업엔지니어링 조직과 일치하도록 그룹을 생성할 수 있습니다.

스키마 및 API 그룹은 여러 아티팩트 유형을 포함할 수 있습니다. 예를 들어 Protobuf, Avro, JSON Schema, OpenAPI 또는 AsyncAPI 아티팩트가 모두 동일한 그룹에 있을 수 있습니다.

Service Registry 웹 콘솔, REST API, 명령줄, Maven 플러그인 또는 Java 클라이언트 애플리케이션을 사용하여 스키마 및 API 아티팩트 및 그룹을 생성할 수 있습니다. 다음 간단한 예제에서는 Core Registry REST API 사용 방법을 보여줍니다.

$ curl -X POST -H "Content-type: application/json; artifactType=AVRO" \
  -H "X-Registry-ArtifactId: share-price" \
  --data '{"type":"record","name":"price","namespace":"com.example", \
   "fields":[{"name":"symbol","type":"string"},{"name":"price","type":"string"}]}' \
  https://my-registry.example.com/apis/registry/v2/groups/my-group/artifacts

이 예제에서는 my-group 이라는 아티팩트 그룹을 생성하고 공유 가격 의 아티팩트 ID를 사용하여 Avro 스키마를 추가합니다.

참고

그룹 지정은 서비스 레지스트리 웹 콘솔을 사용할 때 선택 사항이며 기본 그룹은 자동으로 생성됩니다. REST API 또는 Maven 플러그인을 사용하는 경우 고유한 그룹을 생성하지 않으려면 API 경로에 default 그룹을 지정합니다.

추가 리소스

다른 스키마 및 API에 대한 참조

일부 Service Registry 아티팩트 유형에는 한 아티팩트 파일에서 다른 아티팩트 파일로의 아티팩트 참조 가 포함될 수 있습니다. 재사용 가능한 스키마 또는 API 구성 요소를 정의한 다음 여러 위치에서 참조할 수 있습니다. 예를 들어, $ref 문을 사용하여 JSON 스키마 또는 OpenAPI에서 또는 가져오기 문을 사용하여 Google Protobuf 또는 중첩된 네임스페이스를 사용하여 Apache Avro에서 참조를 지정할 수 있습니다.

다음 예제에서는 중첩된 네임스페이스를 사용하여 Exchange 라는 다른 스키마에 대한 참조를 포함하는 tradeKey 라는 간단한 Avro 스키마를 보여줍니다.

중첩된 교환 스키마를 사용하는 tradeKey 스키마

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

교환 스키마

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

아티팩트 참조는 아티팩트 유형별 참조에서 내부 서비스 레지스트리 참조에 매핑되는 아티팩트 메타데이터의 컬렉션으로 서비스 레지스트리에 저장됩니다. 서비스 레지스트리의 각 아티팩트 참조는 다음으로 구성됩니다.

  • 그룹 ID
  • 아티팩트 ID
  • 아티팩트 버전
  • 아티팩트 참조 이름

Service Registry 코어 REST API, Maven 플러그인 및 Java serializers/deserializers(SerDes)를 사용하여 아티팩트 참조를 관리할 수 있습니다. 서비스 레지스트리는 아티팩트 콘텐츠와 함께 아티팩트 참조를 저장합니다. 또한 서비스 레지스트리는 모든 아티팩트 참조 컬렉션을 유지 관리하므로 이를 검색하거나 특정 아티팩트에 대한 모든 참조를 나열할 수 있습니다.

지원되는 아티팩트 유형

서비스 레지스트리는 현재 다음 아티팩트 유형에 대한 아티팩트 참조를 지원합니다.

  • Avro
  • protobuf
  • JSON 스키마
  • OpenAPI
  • AsyncAPI
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.