Laravel7 CRUDのAPIの実装手順

Laravel7 CRUDのAPIの実装手順

Laravel7でCRUD機能のGET/POST/PUT/DELETEを持ったAPIを実装するまでの手順を記述してます。

環境

  • OS CentOS Linux release 8.0.1905 (Core)
  • Composer 1.10.5
  • PHP 7.4.5
  • Percona Server Ver 8.0.19-10
  • Laravel Framework 7.6.2

※CentOs8に Laravel のインストールはこちら
※CentOs8 に Percona Server のインストールはこちら

Laravelアプリケーション作成

任意の場所で、プロジェクトを作成します 。
ここではlaravel-testという名称で作成してます。

初期設定

.envファイル設定

環境に合わせて Percona Server との接続情報を設定しておきます。

日本語環境設定

configフォルダ配下の「app.php」のtimezoneとlocalを変更しておきます。

モデル作成

下記のコマンドを実行して、モデルとマイグレーションファイルを作成します。

「app/Task.php」が作成されるので、下記の通りに編集します。

$fillableに指定したカラムはホワイトリストとなり、create()やfill()、update()で値の代入が可能となります。

※$fillableと$guardedの使い方はこちら

テーブル作成

モデル作成時に生成された「database/migrations/xxxx_xx_xx_xxxxxx_create_tasks_table.php」を下記の通りに編集して、テーブルを作成します。

マイグレーションを実行します。

テーブル「tasks」が作成されて、カラムも作成されます。

APIコントローラー作成

次にコントローラーを作成します。
–apiで、 必要なメソッドを自動生成してくれます 。

app/Http/Controllers/TaskController.phpが作成されるので、下記の通りに編集しておきます。
use App/Http/Requests/StoreTask;はバリデーションで、次に実装します。

バリデーション作成

バリデーションを行うためFormRequestクラスを作成します。。

app/Http/Requests/StoreTask.phpを下記の通りに編集します。

ルーティング追加

エンドポイントを設定するため、ルーティングを記述します。

routes/api.phpに下記を追加します。
設定すると「 /api/tasks/ 」がエンドポイントとなります。

ルーティングは下記のコマンドで確認できます。

起動

起動します。
ここではプライベートIPアドレスにアクセスしたいため「–host 0.0.0.0」オプションを指定してます。

確認

実装が完了したので、実際の動作を確認してみます。

POST

まずはPostmanを使用してPOSTして、データを新規作成します。

localで下記のcurlコマンドを実行しても同様です。

データが作成されていることが確認できます。

GET

次に、GETしてレコードを確認してみます。

localで下記のcurlコマンドを実行しても同様です。

下記の通り、idを指定して取得することも可能です。

PUT

次に、PUTしてレコードを更新します。

localで下記のcurlコマンドを実行しても同様です。

データーベースを確認すると更新されていることがわかります。

DELETE

最後に作成したデータを削除します。

localで下記のcurlコマンドを実行しても同様です。

データが削除されていることが確認できます。

※JSONの日本語文字化けに対応はこちら