DevToolKits.app
Article

JSONからOpenAPI (Swagger) スキーマを作成する

APIドキュメント作成の標準であるOpenAPI 3.0。既存のJSONから効率よくスキーマを生成し、ドキュメント作成を加速させる方法について。

OpenAPI仕様書のイメージ

OpenAPI Specification (OAS) とは?

OpenAPI Specification (OAS) は、RESTful APIのインターフェースを記述するための、特定の言語に依存しない標準的な仕様です。以前は「Swagger」と呼ばれていましたが、現在はコミュニティ主導のオープンプロジェクトとして管理されています。

YAMLまたはJSON形式で記述され、以下のような開発フローの自動化に不可欠な存在となっています:

  • APIドキュメントの自動生成: Swagger UIなどによるインタラクティブなドキュメンテーション。
  • クライアントコードの生成: 様々な言語のSDK(ライブラリ)を自動出力。
  • モックサーバーの構築: フロントエンド開発を先行させるためのダミーサーバー。
  • 品質管理: リクエスト・レスポンスのスキーマ検証。

スキーマ定義における「ネスト」の課題

API仕様書を作成する際、最も手間がかかるのがリクエストボディやレスポンスボディの「Schema」定義です。
特に、階層が深い(ネストされた)オブジェクトや、多数のプロパティを持つJSONをOpenAPIの構造(type, properties, required, itemsなど)に合わせて手書きするのは、時間がかかるだけでなく入力ミスの原因にもなります。

JSONからの効率的な自動生成

既に動作しているAPIがある場合、あるいはサンプルのレスポンスJSONが手元にある場合は、それを元にスキーマを自動生成するのが最も効率的です。

  1. APIを実行して、実際のJSONデータを取得します。
  2. JSON→OpenAPI生成ツール にそのJSONを貼り付けます。
  3. 数秒で components/schemas 形式の定義が出力されます。
  4. 生成された定義を、あなたの openapi.yaml などの定義ファイルへ統合します。

当サイトのツールの特徴

DevToolKitsの生成ツールは、最新の OpenAPI 3.1.0 基準で動作します。

  • 型推論: 数値、文字列、真偽値、オブジェクト、配列を正確に判別します。
  • 必須項目の抽出: JSONに含まれるプロパティを自動的に required 項目としてリストアップします(必要に応じて後から調整可能です)。
  • 型の統合 (oneOf): 配列内に異なる型のデータが混在している場合、oneOf を用いて複数の型を網羅的に表現します。
  • 日付形式の検知: 2024-01-15T12:00:00Z のような文字列を検知し、format: date-time を自動付与します。
  • OpenAPI 3.1準拠: nullable: true の代わりに、最新仕様である type: "null" などの表現にも最適化されています。

💡 プロのヒント: 自動生成はあくまで「下書き」です。生成後に各プロパティへ descriptionexample を追加することで、チームメンバーやAPI利用者に優しい、より実用的なドキュメントへと磨き上げることができます。

関連ツール

広告

広告