IT

【完全保存版】Laravel REST API構築の基本とやるべきこと3つ

IT
勉強する人
勉強する人

「LaravelでREST APIをどうやって構築すればいいの?」「基本の手順や重要なポイントを知りたい!」
そう思う方もいるかもしれません。
Laravelを使ったREST APIの構築は、基本を押さえれば誰でも効率よく進められます。
この記事では、LaravelでREST APIを構築するための基本的な手順や、成功の鍵となる3つのポイントを詳しく解説します。

本記事のテーマ

【完全保存版】Laravel REST API構築の基本とやるべきこと3つ

Laravel REST API構築の基本とやるべきこと3つ

  1. Laravel環境の基本設定
  2. REST APIエンドポイントの作成
  3. 認証とセキュリティの設定

1. Laravel環境の基本設定

LaravelでREST APIを構築するには、まず環境を整える必要があります。以下は基本的なセットアップ手順になります。

Laravelのインストール

Composerを使用してLaravelをインストールします:

composer create-project --prefer-dist laravel/laravel rest-api-demo

環境設定

.envファイルでデータベース接続情報を設定します:

.envファイルはルート階層の直下にあります。今回はmysqlに接続する想定で行います。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1 // ご利用のIPを指定してください
DB_PORT=3306
DB_DATABASE=your_database_name // ご利用のDBを指定してください
DB_USERNAME=your_username // ご利用のUSERNAMEを指定してください
DB_PASSWORD=your_password // ご利用のPASSWORDを指定してください

マイグレーションの実行

php artisan migrate

2. REST APIエンドポイントの作成

エンドポイントの作成は、LaravelでのREST API構築の中核です。以下の手順で進めます。

コントローラの作成

RESTfulコントローラを作成します:

php artisan make:controller ArticleController --resource

これにより、CRUD操作に対応するメソッドを持つコントローラが生成されます。

ルートの設定

routes/api.phpにルートを追加します:

Route::apiResource('articles', ArticleController::class);

モデルとマイグレーションの作成

Articleモデルとそのマイグレーションを作成します:

php artisan make:model Article -m

database/migrationsフォルダ内のマイグレーションファイルを編集し、必要なカラムを定義します。

CRUDメソッドの実装

コントローラ内でCRUDメソッド(index, store, show, update, destroy)を実装します。

3. 認証とセキュリティの設定

セキュリティを考慮したREST APIの構築には、以下が不可欠です。

トークン認証の導入

Laravel Sanctumを使用してトークンベースの認証を実装します:

composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate

ミドルウェアをapiルートに適用します:

Route::middleware('auth:sanctum')->group(function () {
    Route::apiResource('articles', ArticleController::class);
});

データ検証とエラーハンドリング

public function store(Request $request)
{
    $validated = $request->validate([
        'title' => 'required|string|max:255',
        'content' => 'required',
    ]);

    return Article::create($validated);
}

エラーが発生した場合に適切なレスポンスを返すようにします。

さいごに

ここまで読んで下さり誠にありがとうございます!

コメント