【ITニュース解説】Building Your First API in Laravel – A Beginner’s Guide
2025年09月24日に「Dev.to」が公開したITニュース「Building Your First API in Laravel – A Beginner’s Guide」について初心者にもわかりやすく解説しています。
ITニュース概要
Laravelを使ったAPI開発の初心者向けガイド。APIはアプリの基盤で、LaravelはRESTful API構築に最適だ。プロジェクト作成からDB設定、モデル、コントローラ、ルーティング、そしてPostmanでのテストまで、ステップバイステップで解説。基本的なCRUD操作を持つAPIを構築できる。
ITニュース解説
Laravelを使ったAPIの構築は、現代のWebアプリケーション開発において非常に重要なスキルとなる。API(Application Programming Interface)は、アプリケーション同士が互いに情報をやり取りするための仕組みだ。例えば、スマートフォンのアプリが天気予報を表示したり、オンラインストアで商品情報を取得したりするとき、その裏側ではAPIが動いている。APIは、フロントエンド(ユーザーが見たり操作したりする部分)とバックエンド(データの保存や処理を行う部分)がスムーズに通信するための仲介役となる。システムエンジニアを目指す初心者にとって、APIの概念と具体的な構築方法は、ウェブ開発の基礎を理解する上で避けて通れない道と言える。
Laravelは、PHPというプログラミング言語で書かれたWebアプリケーションフレームワークの一つで、その使いやすさから多くの開発者に選ばれている。特に初心者にとって、LaravelはAPI開発を始めるのに適したツールだ。その理由として、RESTful APIを構築するための機能が最初から組み込まれていること、ルーティング(URLと処理の紐付け)やコントローラ(具体的な処理を記述する場所)の設定がシンプルであること、そしてEloquent ORMという機能を使ってデータベースとのやり取りを簡単に行える点が挙げられる。また、開発したAPIが正しく機能するかどうかをPostmanのようなツールで簡単にテストできるのも魅力だ。
実際にLaravelで最初のAPIを構築する手順を見ていこう。まず、新しいLaravelプロジェクトを作成する。これにはComposerというPHPのパッケージ管理ツールを使う。コマンドラインでcomposer create-project laravel/laravel laravel-first-apiと入力すると、「laravel-first-api」という名前の新しいプロジェクトフォルダが作成される。その後、cd laravel-first-apiでプロジェクトフォルダに移動し、php artisan serveというコマンドを実行すると、開発用のWebサーバーが起動する。これにより、ブラウザからhttp://127.0.0.1:8000というアドレスで、作成したアプリケーションにアクセスできるようになる。ArtisanはLaravelに備わっている便利なコマンドラインツールで、開発作業を効率化する様々な機能を提供している。
次に、データベースの設定を行う。Laravelプロジェクトのルートディレクトリにある.envファイルは、データベース接続情報やアプリケーションの環境設定を記述するファイルだ。このファイルを開き、使用するデータベースの種類や接続情報を設定する。設定が完了したら、php artisan migrateというコマンドを実行する。このコマンドは「マイグレーション」と呼ばれる機能を使って、データベースにテーブルを作成したり、変更したりする。migrateコマンドを初回実行すると、Laravelが標準で提供するユーザー認証などに関する基本的なテーブルがデータベースに作成される。
続いて、今回のAPIで扱うデータの「形」を定義する。これを「モデル」と呼ぶ。例えば、ブログ記事のような情報を扱う場合、「記事」のモデルが必要だ。php artisan make:model Post -mというコマンドを実行すると、Postという名前のモデルファイルと、postsテーブルを作成するためのマイグレーションファイルが自動で生成される。モデルはデータベースの特定のテーブルと対応しており、データの操作を行う窓口となる。生成されたマイグレーションファイル(database/migrationsフォルダ内にあるファイル)を開き、postsテーブルに持たせたいカラム(列)を定義する。具体的には、id(各記事を一意に識別する番号)、title(記事のタイトル)、content(記事の内容)、そしてtimestamps(記事の作成日時と更新日時を自動で記録する)といったカラムを追加する。定義が終わったら、再びphp artisan migrateを実行して、この新しいpostsテーブルをデータベースに作成する。
データとデータベースの準備ができたら、そのデータを操作するための「コントローラ」を作成する。コントローラは、ユーザーからのリクエストを受け取り、どのような処理を行うかを定義する役割を担う。php artisan make:controller PostController --apiというコマンドを実行すると、app/Http/Controllersフォルダ内にPostController.phpというファイルが生成される。--apiオプションを付けることで、API開発に特化した形式のコントローラが作られ、CRUD(Create:作成、Read:読み取り、Update:更新、Delete:削除)操作のためのメソッドのひな形が提供される。このPostController.phpファイルの中に、例えばすべての記事を取得するindexメソッド、新しい記事を作成するstoreメソッド、特定の一つの記事を取得するshowメソッド、記事を更新するupdateメソッド、記事を削除するdestroyメソッドといった具体的な処理を記述していく。ここではEloquent ORMを使うことで、Post::all()で全記事を取得したり、Post::create()で新しい記事を作成したりと、データベース操作を非常に直感的に記述できる。
APIの最後のステップは、これらのコントローラメソッドにアクセスするための「APIルート」を定義することだ。APIルートは、routes/api.phpというファイルに記述する。ここでuse App\Http\Controllers\PostController;としてPostControllerを使えるようにした上で、Route::apiResource('posts', PostController::class);という一行を追加する。このapiResourceという記述が非常に強力で、先ほどPostControllerで定義したCRUD操作に対応するGET、POST、PUT、DELETEといったHTTPメソッドとURLの組み合わせ(エンドポイント)を、自動的にすべて生成してくれる。例えば、GET /api/postsで全記事取得、POST /api/postsで記事作成、GET /api/posts/{id}で特定記事取得、といったルートが一度に定義されることになる。
すべての設定とコードの記述が完了したら、作成したAPIが正しく動作するかをテストする。まず、php artisan serveで開発サーバーが起動していることを確認する。次に、PostmanのようなAPIテストツールを開き、ベースURLをhttp://127.0.0.1:8000に設定する。Postmanでは、HTTPメソッド(GET, POST, PUT, DELETEなど)を選択し、APIのエンドポイントURLを指定してリクエストを送信できる。例えば、GET /api/postsにリクエストを送ると、データベースに保存されているすべての記事データがJSON形式で返ってくることを確認できるだろう。同様に、POST /api/postsで新しい記事を作成したり、PUT /api/posts/{id}で既存の記事を更新したり、DELETE /api/posts/{id}で記事を削除したりといった操作を一つずつ試すことで、APIが意図通りに機能しているかを確認できる。
このようにして、Laravelプロジェクトのセットアップから、モデルとマイグレーションによるデータベース定義、コントローラによるデータ操作ロジックの実装、APIルートの定義、そしてPostmanを使った動作テストまでの一連の流れが完了する。これらは、現代のWebアプリケーション開発においてバックエンドの根幹をなす部分であり、システムエンジニアを目指す上で非常に価値のある経験となる。次のステップとしては、作成したAPIをより安全に利用できるように、Laravel SanctumやPassportといった機能を使ってAPIの「認証」機能を実装することも検討すると良いだろう。これにより、許可されたユーザーだけがAPIにアクセスできるように制御できる。