Laravel PHP サーバサイド

Laravelでモデルをレスポンスとして返すならResourcesを使うべし

どうも、シローです。

今回はLaravelでモデルデータをAPIとして返す場合は、Resourcesを使うと便利という内容です。

Laravel Resourcesとは

APIでモデルデータをJSONデータとして返す場合、キー名をキャメル<=>スネークの変換や出力したくないデータを除外、データのフォーマットを中間で挟むケースがあります。

これらの処理を簡単に提供できる機能がLaravel Resourcesになります。

Resourceの作成

Resoucesはaritisanコマンドで以下のように作成できます。

実行したらapp/Http/Resourcesフォルダにファイルが追加されます。

Resourceの設定

app/Http/Resouces/UserResource.phpはtoArrayというメソッドを持ち、この関数の返却値がJSONレスポンスとなります。

モデルのテーブル名はスネーク型なため、ここでキー名をキャメルケースに変換したり、パスワードなどの機密データは出力しないように制御できます。

モデルデータへは$thisのプロパティでアクセスできます。

app/Http/Resources/UserResource.php

Resourceを使ってJSONレスポンスを返す

コントローラでDBからユーザ情報を取得し、Resouceを介してJSONレスポンスとして出力する例はこんな感じになります。

app/Http/Controllers/UserController.php

 

-Laravel, PHP, サーバサイド

© 2024 Shiro's secret base