概要
- laravelをAPIサーバーとして使う際にとりあえずPostManとかでリクエストボディー込で投げてオウム返しするように設定する方法をまとめる
方法
-
ルーティングの記載
-
下記のようにapi.phpのルーティングファイルにルート情報を記載する。
アプリ名ディレクトリ/routes/api.php<?php declare(strict_types=1); use App\Http\Controllers\ContentController; use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ Route::post('/return', [ContentController::class, 'return'])->name('return');
-
-
コントローラーの記載
-
任意のコントローラーを定義して、下記のように記載する。
アプリ名ディレクトリ/app/Http/Controllers/ContentController.php<?php declare(strict_types=1); namespace App\Http\Controllers; use Illuminate\Http\Request; class ContentController extends Controller { public function return (Request $request) { return $request; } }
-
-
/api
ルーティングのCSRF回避-
アプリ名ディレクトリ/app/Http/Middleware/VerifyCsrfToken.php
を開き下記のように/api
のルートのみCSRFのチェックを無効化する。アプリ名ディレクトリ/app/Http/Middleware/VerifyCsrfToken.php<?php declare(strict_types=1); namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware; class VerifyCsrfToken extends Middleware { /** * The URIs that should be excluded from CSRF verification. * * @var array<int, string> */ protected $except = [ '/api', ]; }
-
-
あとは任意のリクエストボディーを記載してPostManなどで
http://localhost/api/return
にPOSTメソッドでリクエストを送れば送ったJSONをそのままオウムがえししてくれるはず。(http://localhostの部分は適宜皆さんの環境に合わせて変更してください。) -
バリデーションのチェックもしたいなどあれば下記を参考に独自のリクエストクラスをお作りいただき、バリデーションエラーがJSONで返るように設定すればOK