「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

REST APIを設計・連携していると、次のような疑問にぶつかることはありませんか?

  • 「このREST API、OpenAPI仕様なの?」

  • 「OpenAPIじゃないAPIって仕様は何で定義されてるの?」

  • 「JSON SchemaってOpenAPIと何が違う?」

特に業務システムや外部連携の現場では、OpenAPIが使われていないREST APIも数多く存在します。
この記事では、REST API設計で迷わないために、OpenAPI・独自定義・JSON Schemaの違いを整理して解説します。

OpenAPIとその他仕様(独自定義・JSON Schema)検討中のイラスト


そもそもREST APIの「仕様」とは何か?

まず前提として、REST APIにおける「仕様」とは、主に次の情報を指します。

  • エンドポイント(URL)

  • HTTPメソッド(GET / POST など)

  • リクエストパラメータ

  • レスポンス構造(JSON)

  • 認証方式

  • エラー仕様

これらをどの形式で定義・共有しているかが「API仕様の違い」になります。


OpenAPIとは

OpenAPIの概要

OpenAPI(旧Swagger)は、REST APIの仕様を YAML / JSON 形式で機械可読に定義できる仕様です。

OpenAPIの特徴

  • API全体を一元定義できる

  • ドキュメント自動生成が可能

  • クライアント/サーバコード生成に対応

  • 仕様の齟齬が起きにくい

向いているケース

  • 新規API開発

  • 外部公開API

  • チーム開発・長期運用


独自定義(設計書ベース仕様)

独自定義とは

Excel、Word、PDF、社内Wikiなどで作成された 人間向けのAPI設計書です。

よくある構成

  • API一覧表(URL・メソッド)

  • パラメータ一覧(日本語説明)

  • JSONのサンプルレスポンス

特徴

  • 日本の業務システムで最も多い

  • 非エンジニアにも読みやすい

  • フォーマットが自由

デメリット

  • 機械可読ではない

  • 実装と仕様がズレやすい

  • 自動テストや生成ができない

👉 「OpenAPIですか?」と聞かれて詰まる原因の大半がこれ


JSON Schemaとは

JSON Schemaの概要

JSON Schemaは、JSONデータ構造を定義するための仕様です。

特徴

  • データ構造の定義に特化

  • バリデーションに強い

  • OpenAPIの内部でも利用されている

注意点

  • API全体(URLやHTTPメソッド)は定義できない

  • 単体ではREST API仕様とは言えない

👉 「レスポンスだけJSON Schemaで管理」している現場は意外と多い


OpenAPI・独自定義・JSON Schemaの違いまとめ

項目OpenAPI独自定義JSON Schema
API全体定義×
機械可読×
自動生成×
可読性
現場遭遇率非常に高

実務でよくある組み合わせ

実際の現場では、単独利用よりも併用されるケースが多いです。

  • 独自設計書 + JSON Schema

  • OpenAPI + 補足資料(Excel)

  • OpenAPI未導入だが将来移行予定

模範的な説明例(実務向け)

本APIはOpenAPIは未採用で、
設計書ベースの独自仕様を使用しています。
レスポンス構造の一部はJSON Schemaで定義しています。

この説明で ほぼ100%通じます


OpenAPIかどうかを見分ける方法

一番簡単な判断方法はこれです。

  • openapi: 3.x.x が書かれたYAML / JSONが存在する
    OpenAPI

  • Excel / Word / Wikiのみ
    独自定義

  • JSON Schemaファイルのみ
    データ仕様のみ定義


REST API設計で迷わないための結論

  • REST API仕様は OpenAPIだけではない

  • 日本の業務システムでは 独自定義が今も主流

  • JSON Schemaは 補助的な役割

  • 新規設計ならOpenAPIがベスト

  • 既存APIなら「何で定義されているか」を正確に説明できることが重要


まとめ

REST API設計で重要なのは、
「どの仕様を使っているか」ではなく「どう説明できるか」です。

OpenAPI・独自定義・JSON Schemaの違いを理解しておけば、
設計・レビュー・外部連携で迷うことはありません。

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x