Caching API Responses
Cache expensive API responses with Laravel's Cache facade. Use cache tags for grouped invalidation.
Cache expensive API responses with Laravel's Cache facade. Use cache tags for grouped invalidation.
public function index(Request $request) {
$key = "api:posts:" . md5(serialize($request->query()));
return Cache::remember($key, 300, function () use ($request) {
return PostResource::collection(Post::filter($request)->paginate(20));
});
}
// Invalidate on mutation
public function store(StorePostRequest $request) {
$post = Post::create($request->validated());
Cache::forget("api:posts:*"); // or use Cache::tags(["posts"])->flush();
return new PostResource($post);
}
Cache::remember(key, ttl, closure) is atomic — only one process recalculates on cache miss.