スキーマの作成

Prev Next

VPC環境で利用できます。

トピックにスキーマを作成します。スキーマはメッセージの構造を定義する目的で使用されます。Keyと Valueにそれぞれ異なるスキーマを適用できます。

リクエスト

リクエスト形式を説明します。リクエスト形式は次の通りです。

メソッド URI
POST /api/v1/topics/{topicId}/schemas

リクエストヘッダ

Data Stream APIで共通して使用されるヘッダの詳細は、Data Streamのリクエストヘッダをご参照ください。

リクエストパスパラメータ

リクエストパスパラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
topicId String Required トピック ID

リクエストボディ

リクエストボディの説明は次の通りです。

フィールド タイプ 必須の有無 説明
schemaType String Required スキーマタイプ
  • AVRO | JSON | PROTOBUF
    • AVRO: Apache Avroスキーマ
    • JSON: JSONスキーマ
    • PROTOBUF: Protocol Buffersスキーマ
schema String Required スキーマの定義
  • 選択したスキーマタイプに適合する形式で作成
  • JSON文字列の形式で渡す
type String Required スキーマの適用対象
  • key | value
    • key: メッセージキーに適用
    • value: メッセージ値に適用

リクエスト例

リクエストのサンプルコードは次の通りです。

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