LaravelAPIメモ
概要
- LaravelのAPIを作成する際に、考えたことや学んだことなどを簡単にまとめる
- 覚書程度であるため、詳細を見たい場合は参考のサイトなどに飛ぶこと
Laravel関係 コマンド
コマンド
# Laravelプロジェクトの作成
# フォルダ名を[.]にすることで、カレントディレクトリに作成が可能
# 用例:composer create-project laravel/laravel laravel-api-create-test
composer create-project laravel/laravel フォルダ名
# サーバーの起動
php artisan serve
# portオプション
php artisan serve --port = 8080
minatomi. 1週間で基礎から学ぶLaravel入門 (p.21). minatomi. Kindle 版.
# app/Models配下にファイルを作成
# -mでマイグレーションファイルも同時に作成
# 用例:php artisan make:model Student -m
php artisan make:model ファイル名 -m
# app/Http/Controllers配下に、新しくコントローラーファイルを作成
# 用例php artisan make:controller ApiProductController
php artisan make:controller ファイル名
# make:controller optionあり
# モデルと関連付けて作成することが可能
# 用例:php artisan make:controller ApiProductController --model=Product
--model=モデル名
# request配下にrequestファイルを作成
# 用例php artisan make:request StoreProductRequest
php artisan make:request ファイル名
# app/Rules配下に、ruleに関するファイルを作成
# 用例:php artisan make:rule AllowedFields
php artisan make:rule ファイル名
# テーブルの作成
php artisan migrate
# データベースに初期データを追加するファイルを作成
# 詳細については、Laraverl seedで検索
php artisan make: seeder ファイル名
# seedファイルの実行コマンド
php artisan db: seed
# routeingを確認
php artisan route: list
参考サイト
Laravel API 記法
api.php
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use Symfony\Component\HttpFoundation\Response;
use App\Http\Controllers\ApiCardFormatController;
// 認証をつける場合は、ミドルウェア
// 未だ理解しきれていないため、今後まとめる
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
// 直接ルートに関数を記述することで、レスポンスを行う
// JavaScriptのコールバック関数に類似
// Node.js Express.jsの記法に大分近い
Route::get(
'hello',
function (Request $request) {
return response()->json(['message' => 'Hello World!'],Response::HTTP_OK);
}
);
// 別ファイルで定義したルートを使用する場合
// useで宣言したのちに、使用したい関数を指定することで使用可能
// 可読性が上がるため、基本はこちらを利用するはず
Route::post('card/format/create', [ApiCardFormatController::class, 'index']);
// APIエンドポイントにおいて、すべてのエンドポイントに合致しなかった場合に処理を行う関数
// 404を返す
Route::fallback(function () {
return response()->json(['message' => 'Not Found'], Response::HTTP_NOT_FOUND);
});
Response::HTTP_NOT_FOUNDのようにResponseクラスに定数で、ステータスコードがあるため直感的に理解ができてよい。
テーブル操作
// Hogeテーブルに入っているレコードをすべて取得する
hoge = Hoge:: all();
LaravelのStd.out的なもの
dd($ 変数);
用語
マイグレーションファイル
- データベース操作をまとめるファイル
- テーブルごとに設定を行うためのファイル
- マイグレーションファイルを実行することで、テーブル操作を行う。
まとめ
今後も追記していく