【Laravel/MAMP】API開発の流れ!データベースへのCRUD処理

この記事からわかること
- LaravelでAPI開発の流れ
- データベースへのCRUD処理の実装方法
index
[open]
\ アプリをリリースしました /
環境
- Laravel:8.83.29
- PHP:8.2.0
- macOS:Sonoma 14.6.1
LaravelでAPIを開発する流れ
Laravelを使用してAPIを開発する流れをまとめていきます。今回はひとまずローカル環境での開発ということでMAMPのMySQLを使用していきたいと思います。
流れ
- データベースの作成
- データベースの接続
- Eloquentモデル&マイグレーションファイルの作成
- コントローラーの作成
- ルーティングの定義
データベースの作成
最初にMAMPのMySQLコンソール画面からデータベースを作成します。「dev_test」データベースを作成しておきます。

データベースの接続
続いてLaravelプロジェクトとデータベースを連携していきます。連携方法は以下の記事を参考にしてください。
Eloquentモデル&マイグレーションファイルの作成
続いてデータベースCRUD処理を行えるEloquent(エロクアント)モデルとテーブル構造を定義するためのマイグレーションファイルを作成します。 make:model
に-m
オプションを付与することでモデルとマイグレーションファイルを同時に作成することができます。
これで「app」>「Models」ディレクトリ配下にRecord.php
が「database」>「migrations」ディレクトリ配下に{timestamp}_create_records_table.php
が生成されます。-m
オプションは以下コマンドを実行したのと同義です。
{timestamp}_create_records_table.php
のup
メソッドにテーブル構造を定義します。
定義できたらmigrate
を実行して実際にMySQLに反映させます。ここでエラーが発生する場合はデータベース接続から見直してください。
続いてRecord.php
内にテーブル名を定義するprotected $table
と入力可能な項目を定義するprotected $fillable
変数を用意します。
コントローラーの作成
続いて実際にテーブルのデータを登録したり、取得したりするコントローラーを作成します。make:controller
に--model=Record
を付与することでindex
やcreate
などCRUD処理に必要なメソッドの基盤を自動生成してくれます。
自動生成された各メソッドには以下のような役割を実装します。
- index(GET):全て取得
- create:新しいデータを作成するための入力フォームを返す
- store(POST):新規登録
- show(GET):特定のデータを取得
- edit:既存データの編集フォームを返す
- update(PUT):更新
- destroy(DELETE):削除
今回はAPI開発なのでcreate
とedit
は空で定義しておきます。
ルーティングの定義
続いてコントローラーのアクションとURLを紐づけるルーティング設定です。今回はモデルとコントローラーを連携して作成しているので以下の記述だけで各メソッドへのルーティングが完了します。記述する箇所はapi.php
です。そのためURLにはapi/records
のようになるので注意してください。
APIの疎通テスト
これでAPIの開発が完了しました。実際に正常に動作するか確認していきます。今回は「Postman」を使用して疎通テストしていきます。
データベースが空の状態なので最初に新規登録を行います。新規登録はPOST
メソッドでhttp://localhost/oiwai/api/records
にアクセスします。その際にbody
にJSON形式でデータを渡します。
※oiwai
は私の環境構造上入っているだけなので抜いてください。
これでSend
ボタンをクリックすると以下のようにステータスコード200
で結果のJSONが取得できれば正常にデータがデータベースに蓄積されます。

データ一覧を取得したい場合はGET
メソッドでhttp://localhost/oiwai/api/records
にアクセスします。こちらも返り値でデータが全て取得できていれば成功です。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。