Используйте функцию Netlify для кеширования запроса API

Я пытаюсь использовать функцию netlify для "кеширования" запроса API к Open Street Map. Идея состоит в том, чтобы запросить лямбда-функцию netlify, а затем функция запрашивает OSM API. И я люблю кешировать результат на несколько часов. это действительно просто, чтобы предотвратить слишком много запросов к OSM.

export async function handler(event, context) {
    const osmId = event.queryStringParameters.osmId;

    const result = await axios.get('OSM API...', {
        params: {
            data: `...osmId...`,
        },
    });

    return {
        statusCode: result.status,
        body: result.status === 200 ? JSON.stringify(result.data) : '',
        headers: {
            'Content-Type': 'application/json;charset=UTF-8',
            'Cache-Control': 'public, s-maxage=7200',
        }
    };
}

Это нормально работает, но кэшируется независимо от параметра "osmId", который я отправляю функции. По сути, это означает, что каждый запрос функции возвращает один и тот же кешированный результат, что, конечно, не имеет смысла.

http://localhost:8888/.netlify/functions/osm-restaurant?osmId=1234 -> Тот же результат

http://localhost:8888/.netlify/functions/osm-restaurant?osmId=5678 -> Тот же результат

Как я могу кэшировать функцию netlify, включая "переданные параметры"? Или как мне поступить с такой "стратегией кеширования", может быть, иначе?

0 ответов

Другие вопросы по тегам