Create schema

Prev Next

Available in VPC

Create a schema on a topic.

Note

Schemas are used to define the structure of messages. You can register a value schema to manage the structure of message values.

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
  • AVRO | JSON | PROTOBUF
    • AVRO: Apache Avro schema
    • JSON: JSON schema
    • PROTOBUF: Protocol Buffers schema
schema String Required Schema definition
  • Write in the format appropriate for the selected schema type.
  • Pass in JSON string format.

Request example

The request example is as follows:

Create 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\"}]}"
}'

Create 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\"]}"
}'

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