7.3. 서비스 레지스트리에 스키마 등록


Apache Avro와 같은 적절한 형식으로 스키마를 정의한 후 서비스 레지스트리에 스키마를 추가할 수 있습니다.

다음 방법을 사용하여 스키마를 추가할 수 있습니다.

  • 서비스 레지스트리 웹 콘솔
  • 서비스 레지스트리 REST API를 사용하는 curl 명령
  • 서비스 레지스트리와 함께 제공되는 Maven 플러그인
  • 클라이언트 코드에 스키마 구성 추가

클라이언트 애플리케이션은 스키마를 등록할 때까지 서비스 레지스트리를 사용할 수 없습니다.

서비스 레지스트리 웹 콘솔

Service Registry가 설치되면 ui 끝점에서 웹 콘솔에 연결할 수 있습니다.

http://MY-REGISTRY-URL/ui

콘솔에서 스키마를 추가, 보기 및 구성할 수 있습니다. 잘못된 콘텐츠가 레지스트리에 추가되는 것을 방지하는 규칙을 생성할 수도 있습니다.

curl 명령 예

 curl -X POST -H "Content-type: application/json; artifactType=AVRO" \
   -H "X-Registry-ArtifactId: share-price" \ 1
   --data '{
     "type":"record",
     "name":"price",
     "namespace":"com.example",
     "fields":[{"name":"symbol","type":"string"},
     {"name":"price","type":"string"}]}'
   https://my-cluster-my-registry-my-project.example.com/apis/registry/v2/groups/my-group/artifacts -s 2
1
간단한 Avro 스키마 아티팩트.
2
서비스 레지스트리를 표시하는 OpenShift 경로 이름입니다.

Maven 플러그인 예

<plugin>
  <groupId>io.apicurio</groupId>
  <artifactId>apicurio-registry-maven-plugin</artifactId>
  <version>${apicurio.version}</version>
  <executions>
      <execution>
        <phase>generate-sources</phase>
        <goals>
            <goal>register</goal>  1
        </goals>
        <configuration>
            <registryUrl>http://REGISTRY-URL/apis/registry/v2</registryUrl> 2
            <artifacts>
                <artifact>
                    <groupId>TestGroup</groupId> 3
                    <artifactId>FullNameRecord</artifactId>
                    <file>${project.basedir}/src/main/resources/schemas/record.avsc</file>
                    <ifExists>FAIL</ifExists>
                </artifact>
                <artifact>
                    <groupId>TestGroup</groupId>
                    <artifactId>ExampleAPI</artifactId> 4
                    <type>GRAPHQL</type>
                    <file>${project.basedir}/src/main/resources/apis/example.graphql</file>
                    <ifExists>RETURN_OR_UPDATE</ifExists>
                    <canonicalize>true</canonicalize>
                </artifact>
            </artifacts>
        </configuration>
    </execution>
  </executions>
 </plugin>
1
레지스트리에 스키마 아티팩트를 업로드하려면 register 를 실행 목표로 지정합니다.
2
../apis/registry/v2 끝점을 사용하여 서비스 레지스트리 URL을 지정합니다.
3
Service Registry 아티팩트 그룹 ID를 지정합니다.
4
지정된 그룹 ID, 아티팩트 ID 및 위치를 사용하여 여러 아티팩트를 업로드할 수 있습니다.

생산자 클라이언트를 사용한 구성 예

String registryUrl_node1 = PropertiesUtil.property(clientProperties, "registry.url.node1",
    "https://my-cluster-service-registry-myproject.example.com/apis/registry/v2"); 1
try (RegistryService service = RegistryClient.create(registryUrl_node1)) {
    String artifactId = ApplicationImpl.INPUT_TOPIC + "-value";
    try {
        service.getArtifactMetaData(artifactId); 2
    } catch (WebApplicationException e) {
        CompletionStage <ArtifactMetaData> csa = service.createArtifact(
            "AVRO",
            artifactId,
            new ByteArrayInputStream(LogInput.SCHEMA$.toString().getBytes())
        );
        csa.toCompletableFuture().get();
    }
}
1
둘 이상의 URL 노드에 대해 속성을 등록할 수 있습니다.
2
아티팩트 ID를 기반으로 스키마가 이미 있는지 확인합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.