はじめに
こんばんは。
今回も備忘録です。
今回は、LaravelでAPIのHTTPキャッシュを試してみました。
Laravel標準で搭載されている SetCacheHeaders というミドルウェアで実現できるみたいです。
参考サイト
本題
Controller
<?php namespace App\Http\Controllers; use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Log; class ExampleController extends Controller { public function index(): JsonResponse { Log::info('index action!'); return new JsonResponse('example api time => ' . time()); } }
API Route
<?php use Illuminate\Support\Facades\Route; Route::get('example', 'ExampleController@index');
この状態で SetCacheHeaders を使ってみます。
API Route
<?php Route::get('example', 'ExampleController@index')->middleware('cache.headers:public;max_age=10');
max_ageを10秒にしているので、10秒間はlaravel側までアクセスが来ないようになりました。
終わりに
SetCacheHeadersのおかげでかなり簡単に設定できました。
現場からは以上です。