0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Day19 — アプリ設計:API仕様書を作ってみよう(エンドポイント一覧)

0
Last updated at Posted at 2025-12-18

はじめに

Day18 までで、

✅ リクエスト / レスポンスの基礎
✅ 認証(JWT)
✅ セキュリティ(CSRF / Rate Limit)

という API 開発の土台 が完成しました。

ここからは
👉 実際に動くアプリを作るフェーズ
に入ります。

ただし、いきなりコードは書きません。

今日のゴール

・なぜ API 仕様書が必要か理解する

・SPA 用 API の設計方法を知る

・最低限必要なエンドポイントを定義する

・「迷わない開発」の土台を作る

いきなり実装してはいけない理由

ありがちな失敗例👇

・URL が場当たり的

・レスポンス形式がバラバラ

・フロントとバックで認識ズレ

・後から修正地獄 😇

👉 仕様を決めてから書く だけで防げます。

API 仕様書とは?

API 仕様書とは、

「どんなリクエストを送ると、何が返ってくるか」
を明文化した設計図

完璧でなくて OK。
まずは一覧で十分 です。

今回作るアプリ(前提)

シンプルな ミニ投稿アプリ を想定します。

機能

・ユーザー登録 / ログイン

・投稿の CRUD

・認証必須

・SPA(React想定)

エンドポイント一覧(最重要)

認証系

メソッド URL 説明 認証
POST /api/register ユーザー登録 不要
POST /api/login ログイン 不要
GET /api/me 自分情報取得 必須

投稿系

メソッド URL 説明 認証
GET /api/posts 投稿一覧 必須
GET /api/posts/{id} 投稿詳細 必須
POST /api/posts 投稿作成 必須
PUT /api/posts/{id} 投稿更新 必須
DELETE /api/posts/{id} 投稿削除 必須

リクエスト仕様例

投稿作成

POST /api/posts
Authorization: Bearer xxx
Content-Type: application/json
{
  "title": "はじめての投稿",
  "body": "本文です"
}

レスポンス仕様例(成功)

{
  "status": "success",
  "data": {
    "id": 1,
    "title": "はじめての投稿",
    "body": "本文です",
    "user_id": 1
  }
}

レスポンス仕様例(失敗)

{
  "status": "error",
  "message": "バリデーションエラー"
}

レスポンス形式を揃える理由

・フロント実装が楽

・エラーハンドリングが共通化

・保守性が上がる

👉 status / data / message
を基本形にすると安定します。

フロントとのやり取りを想像する

if (response.status === 'success') {
  setPosts(response.data);
} else {
  showError(response.message);
}

👉 API が親切だとフロントが幸せ

認証の前提も明記する

・Authorization ヘッダー必須

・JWT Bearer Token 使用

・未認証時は 401

これを決めておくだけで
「なんで動かない?」
が激減します。

仕様書はどこに書く?

・README.md

・Notion

・Google Docs

・Swagger(余裕があれば)

👉 最初は Markdown で十分

今日のポイント

・API 設計は実装より重要

・エンドポイント一覧が最優先

・レスポンス形式を統一

・認証条件を明確にする

・SPA 開発が一気に楽になる

今日のまとめ

・API 仕様書は「設計図」

・完璧でなくていい

・一覧と形式を決めるだけでOK

・実装前に迷いを消すのが目的

次回 Day20

いよいよコードを書き始めます。」

Day20 — ユーザー登録API・ログインAPIをLaravelで実装

設計した API を
👉 現実のコードに落とし込む
フェーズです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?