VPC 환경에서 이용 가능합니다.
토픽에 스키마를 생성합니다. 스키마는 메시지의 구조를 정의하는 용도로 사용됩니다. Key와 Value에 각각 다른 스키마를 적용할 수 있습니다.
요청
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.
| 메서드 | URI |
|---|---|
| POST | /api/v1/topics/{topicId}/schemas |
요청 헤더
Data Stream API에서 공통으로 사용하는 헤더에 대한 정보는 Data Stream 요청 헤더를 참조해 주십시오.
요청 경로 파라미터
요청 경로 파라미터에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
topicId |
String | Required | 토픽 아이디
|
요청 바디
요청 바디에 대한 설명은 다음과 같습니다.
| 필드 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
schemaType |
String | Required | 스키마 타입
|
schema |
String | Required | 스키마 정의
|
type |
String | Required | 스키마 적용 대상
|
요청 예시
요청 예시는 다음과 같습니다.
AVRO 스키마 생성
Apache Avro 스키마를 생성하는 경우의 요청 예시는 다음과 같습니다.
curl --location --request POST 'https://datastream.apigw.ntruss.com/api/v1/topics/mgNWA*****/schemas' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
"schemaType": "AVRO",
"schema": "{\"type\":\"record\",\"name\":\"User\",\"fields\":[{\"name\":\"id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"email\",\"type\":\"string\"}]}",
"type": "value"
}'
JSON 스키마 생성
JSON 스키마를 생성하는 경우의 요청 예시는 다음과 같습니다.
curl --location --request POST 'https://datastream.apigw.ntruss.com/api/v1/topics/mgNWA*****/schemas' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
"schemaType": "JSON",
"schema": "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"integer\"},\"name\":{\"type\":\"string\"},\"email\":{\"type\":\"string\"}},\"required\":[\"id\",\"name\"]}",
"type": "value"
}'
응답
응답 형식을 설명합니다.
응답 상태 코드
Data Stream API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Data Stream 응답 상태 코드를 참조해 주십시오.
응답 예시
성공적으로 스키마가 생성된 경우 응답 바디는 없으며, 상태 코드 200을 반환합니다.
HTTP/1.1 200 OK