「このアプリはAPIを使っています」「REST APIで連携します」——こんな言葉を耳にしたことはないでしょうか。APIはWeb開発において欠かせない概念ですが、「具体的に何のことか」を説明できる初心者は多くありません。本記事では、APIとREST APIの仕組みを初心者にわかりやすく、具体的な例を交えながら解説します。
Ⅰ. APIとは何か
1. レストランで例えるAPI
API(Application Programming Interface)とは、異なるソフトウェア同士が情報をやり取りするための窓口です。
わかりやすいたとえとして「レストランのウェイター」があります。
- 客(あなた) = アプリやブラウザ(クライアント)
- ウェイター = API
- 厨房(シェフ) = サーバーやデータベース
客は厨房に直接入ることはできず、ウェイターを通じて注文し、料理を受け取ります。同様に、アプリはサーバーに直接アクセスするのではなく、APIを通じてデータを要求し受け取ります。
2. 身近なAPIの例
APIは私たちの日常のあちこちに使われています。
- 天気予報アプリが気象庁のデータを表示できるのは、気象データAPIを利用しているから
- SNSアカウントで別サービスにログインできるのは、OAuth APIを利用しているから
- Googleマップを自社サイトに埋め込めるのは、Google Maps APIを利用しているから
Ⅱ. REST APIとは何か
1. RESTとは
REST(Representational State Transfer)とは、WebAPIを設計するための考え方・スタイルのことです。「RESTful」な設計に従ったAPIを「REST API」と呼びます。
REST APIの大きな特徴は、URLがリソース(データ)を表し、HTTPメソッドが操作を表す点です。この設計思想により、APIのURLを見るだけで「何に対して何をするのか」が直感的に理解できます。
2. URLとリソースの対応関係
| URL | 意味 |
|---|---|
/users | ユーザー一覧 |
/users/1 | ID=1のユーザー |
/users/1/posts | ID=1のユーザーの投稿一覧 |
/products | 商品一覧 |
/products/42 | ID=42の商品 |
Ⅲ. HTTPメソッドを理解する
1. 4つのメソッドとCRUD操作
REST APIでは、URLで「どのデータか」を指定し、HTTPメソッドで「何をするか」を指定します。
| HTTPメソッド | 操作 | 意味 | 例 |
|---|---|---|---|
| GET | Read | データを取得する | ユーザー一覧を取得 |
| POST | Create | データを新規作成する | 新しいユーザーを登録 |
| PUT / PATCH | Update | データを更新する | ユーザー情報を変更 |
| DELETE | Delete | データを削除する | ユーザーを削除 |
たとえば「ID=5のユーザー情報を取得したい」場合は、GET /users/5 というリクエストを送ります。「新しいユーザーを登録したい」場合は POST /users に必要なデータを添えて送ります。
2. HTTPステータスコード
APIへのリクエストに対してサーバーは「ステータスコード」と呼ばれる3桁の数字で結果を返します。
| ステータスコード | 意味 | よく見るケース |
|---|---|---|
| 200 OK | 成功 | GETで正常にデータを取得できた |
| 201 Created | 作成成功 | POSTで新規データが作られた |
| 400 Bad Request | リクエストが不正 | 必要なパラメータが足りない |
| 401 Unauthorized | 認証が必要 | ログインが必要なAPIにアクセスした |
| 404 Not Found | 見つからない | 存在しないリソースへのアクセス |
| 500 Internal Server Error | サーバーエラー | サーバー側でバグが発生した |
Ⅳ. 実際にAPIを叩いてみる
1. コマンドラインで試す
APIはターミナルから curl コマンドで手軽に試せます。
(1) GETリクエスト
以下は無料で公開されているサンプルAPIを叩く例です。
curl https://jsonplaceholder.typicode.com/users/1
実行すると、JSON形式のユーザーデータが返ってきます。
(2) POSTリクエスト
curl -X POST https://jsonplaceholder.typicode.com/posts
-H 'Content-Type: application/json'
-d '{"title": "テスト", "body": "本文", "userId": 1}'
2. 無料で試せるサンプルAPI
| サービス名 | 内容 | 特徴 |
|---|---|---|
| JSONPlaceholder | 投稿・ユーザー・コメントなどのダミーAPI | 登録不要でそのまま使える |
| OpenWeatherMap API | 天気情報API | 無料枠あり。実用的なデータで練習できる |
| The Dog API | 犬の画像API | シンプルで楽しく試せる入門向け |
| Pokémon API(PokeAPI) | ポケモンデータAPI | 無料・登録不要で豊富なデータ |
Ⅴ. まとめ
REST APIは「URLでリソースを指定し、HTTPメソッドで操作を指定する」というシンプルな設計思想に基づいています。この仕組みを理解すると、世の中のWebサービスがどのように連携しているかが見えてきます。まずはJSONPlaceholderを使ってGETリクエストを試し、次にPOSTやDELETEと組み合わせることで、REST APIの感覚を体で覚えていきましょう。APIを扱えるエンジニアへの第一歩は、実際に手を動かすことから始まります。