Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
将JSON数据结构自动转换为Smithy IDL模型定义,简化API设计与服务建模流程。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
JSONからSmithyモデルへ変換する機能は、入力したJSONサンプルの形を読み取り、対応するSmithy IDLの型定義を組み立てるための出発点です。たとえば、オブジェクトのプロパティや配列の要素をもとに、メンバーや入れ子のshapeを含むテキストを生成します。頂点となる型名は初期値が Root で、用途に合わせて変更できます。出力はコピー、または .smithy ファイルとしてダウンロードできます。
Smithyはサービスのデータモデルやインターフェースを記述する言語です。structure は名前付きメンバーのまとまり、list は順序のある要素列、map はキーと値の対応を表します。入力JSONは実データの一例であり、生成結果はその例から推測したモデルのたたき台です。Smithyのモデル表現にはIDLのほかJSON ASTもあり、両者は別の表現形式です。Smithy 2.0のモデル仕様を参照してください。
変換時に見えるのは、入力したサンプルのキー、値、オブジェクトや配列の入れ子です。たとえば注文データに文字列の注文番号と明細の配列が含まれていれば、出力はそれらを表すメンバーと型を含む形になります。複数のサンプルで同じフィールドに異なる値があるなら、すべての実際のパターンを入力に含めてから、推定された型を確認してください。
Smithy IDLでは、shapeを定義する前にnamespaceを宣言する構成が仕様で定められています。生成テキストのnamespaceや型定義を、利用するプロジェクトの命名規則に照らして見直してください。Smithy IDL仕様では、control、metadata、shapeの各セクションや構文を確認できます。
空配列には要素の例がなく、空オブジェクトにはメンバーの例がありません。そのため、その値だけからリスト要素やオブジェクト構造の意味を確定することはできません。配列を含む場合は代表的な要素を少なくとも入力例に含め、複数の種類がある場合は別のサンプルでも形を示すと、出力を照合しやすくなります。
Smithyの集約shapeには structure、list、map、union などがあります。JSONの見た目だけでは、業務上の意味や許される状態まで決まりません。集約型の定義はSmithyの集約型仕様で確認できます。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
対象のフィールドと値の型が分かるサンプルを入力します。JSONとして解析できるよう、キーと文字列値を二重引用符で囲み、括弧とカンマを確認してください。
Root のままでも始められますが、データを表す名前に変更すると出力を読み返しやすくなります。「型定義のみ」の設定は通常有効です。追加のサービス設計が必要な場合も、この出力だけで補われるわけではありません。
入力した各キー、ネスト、配列要素と生成テキストを比較します。必要箇所を編集してからコピーするか、Smithyファイルとしてダウンロードしてください。
活用例
仕事や日常の流れの中での活用方法を紹介します。
APIレスポンスのJSON例を持つ開発者が、手作業でshapeの骨組みを起こす前にたたき台を作れます。状態違いのレスポンスも追加し、欠落するフィールドや型の揺れを仕様書と照合します。
チームでJSON例をもとにフィールド名やネスト構造を話し合うとき、生成したIDLをレビュー資料の初案にできます。利用側の制約や命名規則を担当者が追記してからモデルとして扱います。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
いいえ。サンプルから推測したデータ型の草案です。サービス、操作、認証、ドキュメント、必須条件や制約などは、実際のAPI契約に基づいて別途設計・確認してください。
配列が空なら要素の例がないため、意図した要素型をJSONだけで決められません。代表的な要素を含むサンプルを用意し、出力の型を確認してください。
1つのサンプルには現れていないフィールドの欠落、別の値型、nullなどを推測できない場合があります。実データの全パターンやAPI仕様を照合し、生成テキストを調整してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
この変換は入力サンプルから型構造を推測するもので、Smithy仕様への適合を検証する機能や、完全なサービスAPIを設計する機能ではありません。単一サンプルから必須性、任意性、許容値、互換性、認証や操作の要件を判断できません。空配列・空オブジェクト、値の揺れ、未入力のフィールドがある場合は特に、元の契約を確認して型を手直ししてください。
プロジェクトに組み込む前に、採用するSmithyのバージョンとプロジェクトの検証手順でモデルを確認してください。入力に実データを使う場合は、個人情報、秘密鍵、アクセストークンなどを取り除き、公開してよいサンプルに置き換えてください。
関連
関連ツール、特集、利用可能なAPIを探せます。