Available in VPC
Create a schema on a topic. Schemas are used to define the structure of messages. Different schemas can be applied to keys and values respectively.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| POST | /api/v1/topics/{topicId}/schemas |
Request headers
For information about the headers common to all Data Stream APIs, see Data Stream request headers.
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
topicId |
String | Required | Topic ID
|
Request body
You can include the following data in the body of your request:
| Field | Type | Required | Description |
|---|---|---|---|
schemaType |
String | Required | Schema type
|
schema |
String | Required | Schema definition
|
type |
String | Required | Schema application target
|
Request example
The request example is as follows:
Create AVRO schema
The following is a sample request when creating an Apache Avro schema.
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"
}'
Create JSON schema
The following is a sample request when creating a JSON schema.
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"
}'
Response
This section describes the response format.
Response status codes
For information about the HTTP status codes common to all Data Stream APIs, see Data Stream response status codes.
Response example
If the schemas are successfully created, there is no response body, and a status code 200 is returned.
HTTP/1.1 200 OK