Create schema

Prev Next

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
  • 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.
type String Required Schema application target
  • key | value
    • key: Apply to message key.
    • value: Apply to message value.

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