OpenAPI ビューア・検証(OpenAPI Studio)

OpenAPI 3.0 / 3.1・Swagger 2.0 の定義を貼り付けるだけで、タグ別のエンドポイント一覧とスキーマのツリーを表示し、公式スキーマと照らして誤りを行・列つきで示します。API の呼び出しや外部ファイルの取得はせず、定義は端末の外へ送信しません。

端末内で処理・アップロードなしスマホ対応オフライン対応ベータ

ファイルや入力内容はお使いの端末(ブラウザ)の中だけで処理され、サーバーへは送信されません。

OpenAPI の定義(YAML / JSON)定義を貼り付けると、ここに結果が表示されます。
0 文字0 行
定義を貼り付けると、ここに結果が表示されます。

使い方

  1. openapi.yaml

    定義を貼る・開く

  2. 検証結果問題点を一覧に
    エンドポイント一覧

    検証して一覧にする

  3. curl の例
    YAML ⇄ JSON

    curl の例や JSON で出す

OpenAPI の定義を貼って、検証し、一覧とサンプルにする流れ
  1. 入力欄に OpenAPI(または Swagger 2.0)の YAML・JSON を貼り付けるか、「ファイルを開く」で読み込みます(複数ファイルも可)。「サンプル」で試すこともできます。

  2. 「閲覧」では、検索・絞り込みでエンドポイントを選び、パラメーター・リクエスト本文・レスポンス・スキーマのツリー・例・curl の例を確認します。スキーマ・セキュリティ・基本情報のタブもあります。

  3. 「検証」では、構文エラーの行・列、公式スキーマとの不一致、未定義の $ref・operationId の重複・パスパラメーターの不足・例とスキーマの食い違いなどを一覧します。「位置へ移動」で入力欄の該当箇所を選択します。

  4. 「変換」では YAML と JSON を相互に変換し、コピーまたはダウンロードします。

  5. 別ファイルへの相対参照(./schemas.yaml#/Pet など)は、同時に読み込んだファイルの中から解決します。読み込んでいない参照は「未解決」と表示します。

できること

公式スキーマで検証

Swagger 2.0・OpenAPI 3.0・3.1 の公式 JSON Schema(@apidevtools/openapi-schemas 2.1.0)に照らして検証し、不一致を入力欄の行・列つきで示します。検証は Web Worker で行うため、大きな定義でも画面は固まりません。

スキーマで表せない誤りも検出

未定義の $ref、operationId の重複、パスのテンプレートとパスパラメーターの過不足、required に書いた項目が properties にない、minimum が maximum より大きい、未定義のセキュリティ方式、example・default とスキーマの食い違いを調べます。

タグ別一覧と詳細

メソッド・パス・概要・deprecated をタグごとに並べ、検索で絞り込めます。操作ごとにパラメーター・リクエスト本文・レスポンス(ヘッダー・メディアタイプ別の例つき)・必要なセキュリティ方式を表示します。

循環参照に強いスキーマのツリー

$ref を辿って allOf・oneOf・anyOf も展開します。循環参照は「循環」と示して止め、深さ 10・3,000 ノードで打ち切るため、再帰的な定義でも固まりません。

複数ファイルの相対参照

同時に読み込んだ複数ファイルの間の相対参照(別ファイルの #/components/... など)を解決します。URL など読み込んでいない参照は取得せず、「未解決」として数を表示します。

curl の例(プレースホルダー付き)

操作ごとに curl のコマンド例を作ります。認証情報・未指定の値は <TOKEN>・<API_KEY> のようなプレースホルダーのままで、実際には送信しません。

こんなときに

  • 書きかけの OpenAPI の YAML が仕様に合っているか、エディターを開かずに確認したい
  • 受け取った Swagger・OpenAPI の定義を、Swagger UI を立てずにブラウザで読みたい
  • operationId の重複やパスパラメーターの定義漏れを、レビュー前に見つけたい
  • 例(example)がスキーマと食い違っていないか確かめたい
  • 機密を含む社内 API の定義を、外部サービスへ送らずに確認したい
  • OpenAPI の YAML と JSON を相互に変換したい

対応形式

入力

OpenAPI 3.0.xOpenAPI 3.1.xSwagger 2.0.yaml.yml.jsonUTF-8(BOM 付き可)

出力

閲覧(画面表示)検証結果の一覧YAML⇔JSON 変換curl の例

対応状況

機能対応補足
OpenAPI 3.0 / 3.1・Swagger 2.0 の閲覧(エンドポイント・スキーマ・例・セキュリティ方式)対応—
構文エラーの行・列表示(YAML・JSON)対応—
公式 JSON Schema による検証対応2.0・3.0・3.1 が対象。3.2 は 3.1 として閲覧のみ(スキーマ検証はしません)
未定義の $ref・operationId の重複・パスパラメーター・required の矛盾・例とスキーマの食い違いの検出対応例の照合は最大 300 件・4 秒まで
複数ファイルの相対参照の解決対応同時に読み込んだファイルの間のみ
YAML ⇄ JSON 変換対応YAML のコメントは JSON では残りません
curl の例の生成一部対応例・既定値のある値だけを使い、認証情報はプレースホルダー。複雑なシリアライズ(style・explode)は反映しません
description の Markdown一部対応整形せずテキストのまま表示します
外部の $ref(URL・読み込んでいないファイル)の取得非対応通信しないため「未解決」と表示します
Try it out(実際に API を呼ぶ)非対応通信を伴うため作っていません
Swagger 2.0 → OpenAPI 3 への変換非対応信頼できる変換ライブラリをブラウザ向けに同梱できていないため対象外です。2.0 は 2.0 のまま閲覧・検証できます
外部ファイルを含む定義全体の検証一部対応検証の対象は最初の仕様ファイルのみ。ほかのファイルは参照の解決にだけ使います
オフラインでの利用対応一度開いたあとは通信なしで動作

制限・注意事項

  • 1 ファイル 500 万文字、合計 1,000 万文字、最大 20 ファイルまでです。100 万文字を超える場合は自動実行を止め、「実行」ボタンで処理します。
  • 入れ子の深さは 100 階層まで。YAML のエイリアスは 100 回までで、超えると拒否します。
  • 一覧に載せる操作は 3,000 件まで、検証結果は 300 件まで表示します。スキーマのツリーは深さ 10・3,000 ノードまでで、超えた部分は省略します。
  • 処理が 30 秒を超えた場合は中止します(巨大な定義や、時間のかかる pattern を含む定義など)。
  • description に書かれた Markdown・HTML は解釈せず、テキストとして表示します。リンクは http(s) のみ、rel="noopener noreferrer nofollow" で別タブに開きます。
  • 3.0 の nullable や 2.0 の x-nullable は、例の照合時に null を許す指定として扱います。

プライバシーと安全性

入力した定義・読み込んだファイルは、お使いのブラウザの中だけで処理されます。サーバーへの送信・保存は行わず、外部の $ref も取得しません。description の HTML は実行されず、テキストとして表示されます。ページを閉じると内容は消去されます。

よくある質問

Swagger Editor や Swagger UI との違いは何ですか?
このツールは定義をブラウザの中だけで読み・検証し、API の呼び出し(Try it out)や外部ファイルの取得をしません。定義はどこにも送られないので、社内 API の仕様でも確認できます。
OpenAPI の検証では何を調べますか?
構文(行・列)、Swagger 2.0・OpenAPI 3.0・3.1 の公式 JSON Schema との一致、未定義の $ref、operationId の重複、パスパラメーターの過不足、required の矛盾、例とスキーマの食い違いなどです。
operationId が重複していると何が困りますか?
コードジェネレーターやドキュメントが operationId を関数名・識別子に使うため、重複すると生成物が衝突したり、どちらかが上書きされたりします。重複した箇所を行つきで一覧します。
別ファイルへの $ref はどう扱われますか?
同時に読み込んだファイルの中にあれば解決します(「ファイルを開く」で複数選択)。URL や読み込んでいないファイルは取得せず、「未解決」として表示します。
Swagger 2.0 を OpenAPI 3 に変換できますか?
できません。このツールは 2.0 を 2.0 のまま閲覧・検証します。変換が必要な場合は swagger2openapi などの変換ツールを使ってください。YAML と JSON の相互変換はできます。
定義がサーバーに送られることはありますか?
ありません。処理はすべてブラウザ内で行われ、入力内容が LIBRA Works のサーバーや第三者に送信されることはありません。

JSON 整形・検証(JSON Studio)

JSON を貼り付けるだけで整形・1 行化・構文チェック。エラーは「何行目の何が悪いか」まで表示し、コメントや末尾カンマは自動修復できます。データは端末の外へ送信しません。

アップロードなし

YAML / TOML 検証・整形・変換(YAML / TOML Studio)

YAML・TOML・JSON を貼り付けるだけで構文チェック・整形・相互変換。エラーは行と列で示し、「no が false になる」などの型の落とし穴と、変換で失われるものを事前に警告します。データは端末の外へ送信しません。

アップロードなしベータ

curl解析・コード生成

Chrome や Firefox の「cURL としてコピー」を貼ると、メソッド・URL・ヘッダー・Cookie・本文を表にし、12 種類のコードへ変換します。リクエストは送らず、すべてブラウザの中で処理します。Authorization や Cookie は共有前に伏せられます。

アップロードなしベータ

JSON→型・Schema生成(Schema Codegen)

JSON のサンプル・JSON Schema・OpenAPI を貼ると、10 種類の形式の型定義を生成します。複数のサンプルを並べると、省略されるキーや型の違いも推論します。データは端末の外へ送信しません。

アップロードなしベータ

秘密情報スキャナー(Secret Scanner)

コードや設定ファイルを貼る・ドロップするだけで、公開前に消すべき秘密情報の候補を行番号つきで一覧します。値は既定で伏せ字、*** に置き換えたコピーも作れます。あくまで補助ツールで、検出漏れがないことは保証しません。

アップロードなし

テキスト・コード Diff

変更前と変更後を貼り付けるかファイルをドロップするだけで、追加・削除された行と、行の中で変わった単語まで色分けして表示します。結果は unified 形式のパッチとしてコピー・保存でき、入力はブラウザの外へ出ません。

アップロードなし

最終更新: