VPC環境で利用できます。
トピックにスキーマを作成します。スキーマはメッセージの構造を定義する目的で使用されます。Keyと Valueにそれぞれ異なるスキーマを適用できます。
リクエスト
リクエスト形式を説明します。リクエスト形式は次の通りです。
| メソッド | URI |
|---|---|
| POST | /api/v1/topics/{topicId}/schemas |
リクエストヘッダ
Data Stream APIで共通して使用されるヘッダの詳細は、Data Streamのリクエストヘッダをご参照ください。
リクエストパスパラメータ
リクエストパスパラメータの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
topicId |
String | Required | トピック ID
|
リクエストボディ
リクエストボディの説明は次の通りです。
| フィールド | タイプ | 必須の有無 | 説明 |
|---|---|---|---|
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