【REST APIについて】
REST API は、Web 上でデータをやり取りするための最も一般的な仕組みで、HTTP(GET/POST/PUT/DELETE など)を使って「リソース」を操作するシンプルで拡張性の高い API 方式であり、Web・モバイル・IoT などあらゆるサービスで使われています。
■ REST API の概要
REST API(Representational State Transfer API)は、RESTという設計原則に従って作られたWeb APIのことです。
■ REST の特徴(要点)
・ステートレス:サーバーはリクエスト間の状態を保持しない
・リソース指向:データ(ユーザー、商品など)をURIで表現する
・HTTP メソッドを活用:
GET:取得
POST:作成
PUT/PATCH:更新
DELETE:削除
・シンプルで拡張性が高い:Web標準に沿っているため、どんなクライアントとも連携しやすい
■ REST API が使われる場面
・Webサービス同士の連携(例:SNS ログイン)
・スマホアプリとサーバーの通信
・IoT デバイスとのデータ送受信
■ REST API の仕組み
①クライアントがリクエストを送る(URL + HTTP メソッド)
②サーバーが処理する(認証・データ取得・更新など)
③レスポンスを返す(JSON が一般的)
この3ステップが REST API の基本動作となる。
以下では、それぞれのステップを“内部で何が起きているか”まで踏み込んで詳しく説明します。
<REST API の仕組みを徹底解説>
1. クライアントがリクエストを送信する
クライアント(ブラウザ、スマホアプリ、別のサーバーなど)は、特定のリソースに対して操作を行うためにHTTPリクエストを送ります。
リクエストに含まれるもの
・URL(エンドポイント)
例:https://api.example.com/users/123
・HTTPメソッド
・GET:取得
・POST:作成
・PUT/PATCH:更新
・DELETE:削除
・ヘッダー(Header)
・認証情報(例:Authorization: Bearer)
・送受信するデータ形式(例:Content-Type: application/json)
・ボディ(Body)※必要な場合のみ
POSTやPUTのときに送るデータ
{
"name": "Taro",
"age": 20
}
この段階で起きていること
・クライアントは「どのリソースに」「どんな操作をしたいか」を明確に伝える
・サーバーはまだ何もしていない(ただ受け取る準備をしている)
2.サーバーがリクエストを処理する
サーバーはリクエストを受け取ると、次のような処理を順番に行います。
①リクエストの検証
・URLが正しいか
・メソッドが許可されているか
・JSONが正しい形式か
②認証・認可(Auth)
・トークンが有効か
・このユーザーがその操作を行う権限を持っているか
③ビジネスロジックの実行
・データベースからデータを取得
・新しいデータを保存
・既存データを更新
・外部サービスを連携
など
④レスポンス用データの整形
・クライアントが必要とする形式(多くはJSON)に変換
・不要な情報は除外
・エラーの場合はエラーコードとメッセージを準備
3.サーバーがレスポンスを返す
処理が完了すると、サーバーはクライアントにHTTPレスポンスを返します。
レスポンスに含まれるもの
・ステータスコード
・200:成功
・201:作成成功
・400:リクエストが不正
・401:認証エラー
・404:リソースが存在しない
・500:サーバー内部エラー
・ヘッダー
・データ形式(例:Content-Type: application/json)
・ボディ(Body)
・実際のデータ(JSONが一般的)
例:ユーザー情報取得のレスポンス
{
"id": 123,
"name": "Taro",
"age": 20
}
全体の流れを図にすると、
[クライアント]
|
| ① HTTPリクエスト(URL + メソッド + ヘッダー + ボディ)
v
[サーバー]
- リクエスト検証
- 認証・認可
- データベース処理
- レスポンス生成
|
| ③ HTTPレスポンス(ステータス + JSON)
v
[クライアント]
■ 例:ユーザー情報を扱うREST API
操作 HTTPメソッド URI 説明
取得 GET /users/123 ID 123 のユーザー情報を取得
作成 POST /users 新規ユーザーを作成
更新 PUT/PATCH /users/123 ユーザー情報を更新
削除 DELETE /users/123 ユーザーを削除
■ REST APIのメリット
・シンプルで学びやすい
・スケールしやすい(ステートレス)
・JSONなど軽量な形式で通信できる
・どんなプラットフォームとも連携しやすい
以上です。
「なりたい自分の、その先へ」
エンジニアファーストの会社、助け合いの共同体、ワークスタイルは多様、集まり帰る場所のある会社
株式会社CRE-COエンジニアリングサービス
https://www.cre-co.jp/
伊藤 俊広
私たちと一緒に働きませんか?
https://en-gage.net/cre-co/