Как использовать API в NextJS?

Всем привет!
Создаю проект с использованием Next.js. В приложении используется API. Но количество запросов к API ограничено. Поэтому столкнулся с такой проблемой: как можно сделать так, чтобы API запрос отправлялся не при перезагрузке страницы, а через какой-то промежуток времени(например каждые 5 минут)?
Вот файл, в котором отправляю запрос API и потом передаю данные на страницу:

import { cryptoList, cryptoName } from './Data'
import axios from 'axios'

export async function fetchCryptoRating(setCryptoServerData, setIsCryptoDataLoading, isMobile) {
    const tables = []
    var count = 0
    cryptoList.forEach(async (crypto) => {
        const options = {
            method: 'GET',
            url: 'https://binance43.p.rapidapi.com/ticker/24hr',
            params: {symbol: crypto + 'USDT'},
            headers: {
                'X-RapidAPI-Host': 'binance43.p.rapidapi.com',
                'X-RapidAPI-Key': 'ce5aac41edmshb2c7534b52e1627p11f39bjsn7fdeff447107'
            }
        };
        const result = await axios.request(options)
        const itemData = isMobile ? [
            cryptoName[count],
            `${parseInt(result.data.lastPrice)} $`,
            `${parseFloat(result.data.priceChangePercent).toFixed(2)} %`
        ] : [
            cryptoName[count],
            crypto,
            `${parseInt(result.data.lastPrice)} $`,
            `${parseInt(result.data.volume)} $`,
            `${parseFloat(result.data.priceChangePercent).toFixed(2)} %`
        ]
        tables.push(itemData)
        count ++
    })
    setCryptoServerData(tables)
    setIsCryptoDataLoading(false)
}


Предполагаю, что нужно сохранять данные в базу данных. Но все равно остается вопрос, как отслеживать время, через которое нужно отправлять запрос
  • Вопрос задан
  • 295 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Сохраняйте полученные данные себе в базу. Вместе с данными храните время их получения.
При запросе к своему АПИ проверяете время последнего обновления в своей базе, и если оно больше Х, то делаете запрос к внешнему АПИ и полученное сохраняете себе.

Можно хранить у себя как полную базу полученных данных из внешнего АПИ.
А можно кратковременно хранить результаты (кэширование).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы