#Cache external requests

4 messages · Page 1 of 1 (latest)

viscid jackal
#

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 }
};

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);
};

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? 🙂

#

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

zealous summit
#

workers run before cache

#

you cannot cache workers