Cache external requests

Hey folks! I have a SvelteKit app deployed through Pages (so my server endpoints are counted as Workers from a CF perspective). In my page server load function (+page.server.ts) I have this:
// +page.server.ts

async function fetchRecentStuff(event: ServerLoadEvent){
const url = '/api/stuff/recents'; // Also tried with absolute url: https://example.com/api/stuff/recents
const response = await event.fetch(url);
const recentStuff = await response.json();
return recentStuff;
}

export const load: PageServerLoad = async (event) => {
const stuff = await getStuff(event);
return { stuff }
};
// +page.server.ts

async function fetchRecentStuff(event: ServerLoadEvent){
const url = '/api/stuff/recents'; // Also tried with absolute url: https://example.com/api/stuff/recents
const response = await event.fetch(url);
const recentStuff = await response.json();
return recentStuff;
}

export const load: PageServerLoad = async (event) => {
const stuff = await getStuff(event);
return { stuff }
};
And in the called endpoint:
// /routes/api/stuff/recents/+server.ts

async function getRecentStuff() {...}
async function getUserProfile(event) {...}

export const GET: RequestHandler = async (event) => {
const mongoUser = await app.logIn(credentials);
const mongoClient = mongoUser.mongoClient('mongodb');

const userProfile = await getUserProfile(event)
const recentStuff = await getRecentStuff(mongoClient, userProfile);

return json(recentStuff);
};
// /routes/api/stuff/recents/+server.ts

async function getRecentStuff() {...}
async function getUserProfile(event) {...}

export const GET: RequestHandler = async (event) => {
const mongoUser = await app.logIn(credentials);
const mongoClient = mongoUser.mongoClient('mongodb');

const userProfile = await getUserProfile(event)
const recentStuff = await getRecentStuff(mongoClient, userProfile);

return json(recentStuff);
};
My goal is to cache that request to /api/stuff/recents at the edge level, so I setup the attached rule. My problem is it actually doesn't cache the request response. Maybe you have an hint? 🙂
No description
1 Reply
Hugo
HugoOP•4mo ago
I suspect something like server-to-server requests are not proxied twice or as the request depends on auth elements, it's not cached. But I'm not sure So what is your recommendation for my use-case?
Want results from more Discord servers?
Add your server