API

OpenAPIとは何か?──Swagger・YAML・REST APIとの関係をやさしく整理する

「OpenAPIって何なのか、イマイチわからない」
「Swaggerとどう違う?」「REST APIとは別物?」
技術用語がいろいろ出てきて混乱しているなら、一度ここで整理しておくと理解がスッと進む。
この記事では、OpenAPIを取り巻く用語を小学生でもわかる言葉で解説する。

REST APIとは?まずはここから

APIとは、アプリ同士が情報をやりとりするための共通のルール
レストランでいうと、注文を厨房に伝える伝票のようなもの。

REST APIは、その中でも特にWebでよく使われている方式
URLを使ってデータを取りにいったり、送ったりする。
例:「GET /users」でユーザー一覧をもらう

APIを使うと、違うシステム同士でもスムーズに情報をやりとりできるようになる。
でも、ここで問題になるのが「そのAPI、どうやって使うの?」という話。

OpenAPIとは?わかりやすく言うと…

OpenAPIは、REST APIの使い方を、わかりやすく書き残すためのルール
一言でいえば、REST APIの設計図やマニュアル

たとえば:

  • どのURLを使うのか
  • どんなデータを送ればいいのか
  • どういうデータが返ってくるのか
  • 認証が必要なのか、どんなエラーが起こるのか

こういった内容を、人にもコンピューターにも読める形で書いておけるのがOpenAPI
しかも書き方が決まっているから、いろんなツールでも自動的に読み取れる。

YAMLとは?OpenAPIの中身の書き方

OpenAPIでは、内容をYAMLという形式で書くのが一般的。

YAMLは、人間が読みやすく、パッと見て内容がわかるような書き方ができる言語
見た目はシンプルで、ルールも難しくない。
プログラミング初心者でも読み書きしやすいという特徴がある。

OpenAPIを書くときには、このYAML形式を使ってAPIの中身を記述する

Swaggerとは?OpenAPIのツールセット

Swaggerは、もともとOpenAPIの前身のようなプロジェクトだった。
現在では、OpenAPIの仕様を活用するためのツールの総称になっている。

Swaggerにはこんなツールがある:

  • Swagger UI:OpenAPIの設計図をWeb上でキレイに見せてくれる
  • Swagger Editor:OpenAPIをブラウザ上で書いたり試したりできるツール
  • Swagger Codegen:OpenAPIを元にプログラムのひな型を自動で作るツール

つまりSwaggerは、OpenAPIを便利に扱うためのセットアイテムと考えればよい。

REST APIとOpenAPIの関係

REST APIは、通信そのもの。OpenAPIは、その使い方の説明書
例えば、REST APIが「自動販売機」だとすれば、OpenAPIは「どのボタンを押せば何が出てくるかの一覧表」。

OpenAPIがないと、どのボタンを押したらいいか手探りになる。
OpenAPIがあると、誰が見ても、正しく使えるようになる。

OpenAPIを理解すると何がいいのか?

OpenAPIが読めて書けると、次のようなことができるようになる:

  • APIの仕様がすぐ理解できる
  • 開発者同士での伝達ミスが減る
  • APIドキュメントが自動で作れる
  • テスト用のモックAPIがすぐ作れる
  • フロントエンドとバックエンドを並行開発できる

実際、Google Cloud、Microsoft Azure、Amazon API Gatewayなどのクラウド系サービスもOpenAPIを標準サポートしている。

つまり、OpenAPIを理解することは、API時代の共通語を習得することに等しい。
API連携、マイクロサービス、SaaS活用、すべてに関わる必須知識になっている。

まとめ

  • REST APIは、Webサービス同士の通信の仕組み
  • OpenAPIは、その使い方を決める設計図
  • Swaggerは、OpenAPIを扱うためのツール群
  • YAMLは、その設計図を記述する形式

OpenAPIを理解すれば、API開発や連携の場面での理解力・設計力が大きく伸びる。
「APIはなんとなく使える」から「仕組みが読める・書ける」へ。
その一歩が、確実にあなたの市場価値を高めてくれる。