もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

laravel で HTTP キャッシュ

はじめに

こんばんは。

今回も備忘録です。

今回は、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');

Image from Gyazo

この状態で SetCacheHeaders を使ってみます。

API Route

<?php 

Route::get('example', 'ExampleController@index')->middleware('cache.headers:public;max_age=10');

Image from Gyazo

max_ageを10秒にしているので、10秒間はlaravel側までアクセスが来ないようになりました。

終わりに

SetCacheHeadersのおかげでかなり簡単に設定できました。

現場からは以上です。