Open1
Laravel:API
設定
ターミナルで以下コマンド実行
terminal
$ php artisan install:api
routes
フォルダにapi.php
が作成されるので、web.php
と同じようにルートの設定を行う。
設定されたルートの先頭には自動的に/api
が付与される。
routes/api.php
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Response as HttpResponse;
Route::get('product', function () {
$products = DB::table('products')->get();
return Response::json((array) $products, HttpResponse::HTTP_OK, ['Content-Type' => 'application/json; utf-8']);
});
JavaScript
const res = await fetch('http://localhost:8000/api/products');
const data = await res.json();
api.php
が読み込まれていない場合はbootstrap/app.php
を確認
bootstarp/app.php
...
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php', // これがなければ追加する
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
...
接頭辞をいじることもできる
bootstarp/app.php
...
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
apiPrefix: 'api/v1', // APIのルートに対して'/api/v1'が自動で付与される
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
...