未経験からエンジニアへ|一緒に会社を作る仲間を募集|SKサービス

開発ツール入門 約6分で読めます

【API設計入門】RESTful APIの基本と設計のポイント|初心者向け

「APIって聞いたことあるけど、設計となると何から始めればいいの?」

Webサービスやアプリ開発では、API(Application Programming Interface)の理解が欠かせません。特にバックエンドエンジニアを目指すなら、API設計の基本は必須スキルです。

この記事では、最もよく使われるREST APIを中心に、API設計の基本と実践的なポイントを解説します。

APIとは?

APIとは、ソフトウェア同士がやり取りするための窓口のことです。

レストランで例えると、APIは「メニュー」のようなものです。お客さん(フロントエンド)はメニューを見て注文し、厨房(バックエンド)が料理を作って提供します。メニューがなければ、何が注文できるかわかりませんよね。

Web APIでは、フロントエンドがHTTPリクエストを送り、バックエンドがJSONなどの形式でデータを返すのが一般的です。

REST APIの基本原則

REST(Representational State Transfer)は、APIを設計するための設計思想(アーキテクチャスタイル)です。RESTに従って設計されたAPIを「RESTful API」と呼びます。

RESTの6つの原則

原則 説明
クライアント・サーバー分離 フロントとバックを分離する
ステートレス 各リクエストは独立(状態を持たない)
キャッシュ可能 レスポンスをキャッシュできる
統一インターフェース 一貫したルールでアクセス
階層化システム 複数のレイヤーで構成できる
コードオンデマンド 必要に応じてコードを送信(オプション)

特に重要なのはステートレスです。サーバーはリクエスト間で状態を保持しないため、各リクエストには必要な情報をすべて含める必要があります。

HTTPメソッドの使い分け

REST APIでは、HTTPメソッドで操作の種類を表現します。

メソッド 操作
GET 取得(読み取り) ユーザー情報を取得
POST 作成 新しいユーザーを登録
PUT 更新(全体) ユーザー情報を丸ごと更新
PATCH 更新(一部) メールアドレスだけ更新
DELETE 削除 ユーザーを削除

これを「CRUD操作」(Create, Read, Update, Delete)と呼びます。

CASUAL TALK

服装自由・オンライン対応

まずは気軽に話しませんか?

応募じゃなくてOK。「ちょっと話を聞いてみたい」だけでも大歓迎。30分のカジュアル面談で、あなたの可能性が見えてきます。

カジュアル面談を予約する

エンドポイントの設計

エンドポイントとは、APIにアクセスするためのURLのことです。良いエンドポイント設計は、APIを使いやすくします。

基本ルール

エンドポイントは名詞で、複数形を使うのが一般的です。

# 良い例
GET /users          # ユーザー一覧を取得
GET /users/123      # ID:123のユーザーを取得
POST /users         # 新しいユーザーを作成
PUT /users/123      # ID:123のユーザーを更新
DELETE /users/123   # ID:123のユーザーを削除

# 悪い例
GET /getUser        # 動詞を使っている
GET /user           # 単数形
POST /createUser    # 動詞が重複

階層構造の表現

リソースの関係性は、URLの階層で表現します。

# ユーザーの投稿一覧
GET /users/123/posts

# ユーザーの特定の投稿
GET /users/123/posts/456

# 投稿へのコメント一覧
GET /users/123/posts/456/comments

検索やフィルタリング

検索条件はクエリパラメータで指定します。

# ページネーション
GET /users?page=2&limit=20

# 検索
GET /users?name=田中

# ソート
GET /users?sort=created_at&order=desc

# 複合条件
GET /users?status=active&role=admin

HTTPステータスコード

レスポンスには適切なステータスコードを返すことが重要です。

コード 意味 使用場面
200 OK 成功(GET, PUT, PATCH)
201 Created 作成成功(POST)
204 No Content 削除成功(DELETE)
400 Bad Request リクエストが不正
401 Unauthorized 認証が必要
403 Forbidden アクセス権限がない
404 Not Found リソースが見つからない
500 Internal Server Error サーバーエラー

よくある間違いは、「削除成功」なのに200を返したり、「認証エラー」なのに400を返したりすることです。適切なコードを返すことで、クライアント側でのエラーハンドリングが容易になります。

レスポンス形式

現在のWeb APIでは、JSON形式が標準です。

成功レスポンスの例

{
  "data": {
    "id": 123,
    "name": "田中太郎",
    "email": "tanaka@example.com",
    "created_at": "2024-01-15T10:30:00Z"
  }
}

一覧レスポンスの例

{
  "data": [
    { "id": 1, "name": "田中太郎" },
    { "id": 2, "name": "佐藤花子" }
  ],
  "meta": {
    "total": 100,
    "page": 1,
    "per_page": 20
  }
}

エラーレスポンスの例

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "入力内容に誤りがあります",
    "details": [
      { "field": "email", "message": "メールアドレスの形式が正しくありません" }
    ]
  }
}

API設計のベストプラクティス

1. バージョニング

APIは将来変更される可能性があるため、バージョンを含めます。

# URLにバージョンを含める(推奨)
GET /v1/users
GET /v2/users

# ヘッダーで指定する方法もある
Accept: application/vnd.example.v1+json

2. 一貫性を保つ

命名規則、レスポンス形式、エラー形式など、API全体で一貫性を保つことが重要です。snake_caseとcamelCaseを混在させない、エラー形式を統一するなど、ルールを決めて守りましょう。

3. ドキュメントを整備する

APIはドキュメントがなければ使えません。OpenAPI(Swagger)などのツールを使って、自動生成することをおすすめします。

まとめ

この記事で解説した内容をまとめます。

項目 ポイント
HTTPメソッド GET=取得, POST=作成, PUT/PATCH=更新, DELETE=削除
エンドポイント 名詞・複数形で統一(/users)
ステータスコード 適切なコードを返す(201=作成, 404=未発見)
レスポンス JSON形式、一貫した構造
バージョニング URLに含める(/v1/users)

良いAPI設計は、使う人のことを考えた設計です。自分がAPIを使う立場になって、わかりやすいか、使いやすいかを常に意識しましょう。

CASUAL TALK

服装自由・オンライン対応

まずは気軽に話しませんか?

応募じゃなくてOK。「ちょっと話を聞いてみたい」だけでも大歓迎。30分のカジュアル面談で、あなたの可能性が見えてきます。

カジュアル面談を予約する
この記事をシェア
CASUAL TALK CASUAL TALK CASUAL TALK CASUAL TALK CASUAL TALK CASUAL TALK

まずは気軽に話しませんか?

応募じゃなくてOK|30分|服装自由|オンライン対応

Page Top