roadmap
roadmap copied to clipboard
Route Caching
Summary
A platform-agnostic route caching API for Astro SSR pages that enables declarative cache control using web standards.
Examples
Basic route caching
---
// src/pages/products/[id].astro
import { getEntry } from 'astro:content';
const product = await getEntry('products', Astro.params.id);
Astro.cache({
lastModified: product.updatedAt,
maxAge: 300, // Cache for 5 minutes
swr: 3600, // Stale-while-revalidate for 1 hour
tags: ['products', `product:${product.id}`]
});
---
<h1>{product.data.name}</h1>
<p>{product.data.description}</p>
Automatic dependency tracking
// src/pages/api/revalidate.ts
import { getLiveEntry } from "astro:content";
export const POST: APIRoute = async ({ cache, request }) => {
const { id } = await request.json();
const { entry } = await getLiveEntry("products", id);
// Invalidate all pages that depend on this entry
cache.invalidate(entry);
return Response.json({ ok: true });
};