Ce site utilise des cookies pour améliorer uniquement votre expérience utilisateur.
Vous pouvez lire à tout moment comment nous utilisons les cookies sur le site.
Bonjour,
J'ai actuellement un problème au niveau des requêtes d'api. En gros j'utilise un sevrer nodeJS qui centralise sur une API local les données de plusieurs requêtes sur l'api CoinGecko
async function
datauniswap() {
let url = 'https://api.coingecko.com/api/v3/exchanges/uniswap/tickers'
axios.create({httpsAgent})
let response = await axios.get(url);
return
response?.data
}
async function
datauniswapv2() {
let url = 'https://api.coingecko.com/api/v3/exchanges/uniswap_v2/tickers'
axios.create({httpsAgent})
let response = await axios.get(url);
return
response?.data
}
async function
datasushiswap() {
let url = 'https://api.coingecko.com/api/v3/exchanges/sushiswap/tickers'
axios.create({httpsAgent})
let response = await axios.get(url);
return
response?.data
}
async function
dataquickswap() {
let url = 'https://api.coingecko.com/api/v3/exchanges/quickswap/tickers'
axios.create({httpsAgent})
let response = await axios.get(url);
return
response?.data
}
async function
datacurvefinance() {
let url = 'https://api.coingecko.com/api/v3/exchanges/curve/tickers'
axios.create({httpsAgent})
let response = await axios.get(url);
return
response?.data
}
server.get('/coingecko', async (req, res) => {
exchangeone = await datauniswap();
exchangetwo = await datauniswapv2();
exchangethree = await datasushiswap();
exchangequattro = await datacurvefinance();
exchangefive = await dataquickswap();
cacheTime = Date.now();
let data = [exchangeone, exchangetwo, exchangethree, exchangequattro, exchangefive]
res.json(data)
})
Puis sur mon App react j'appelle l'api 'http://localhost:4500/coingecko' pour pouvoir affichez certaines données qui y sont contenue dans une app. Cependant je suis confronté a un problème a ce niveau la car mon app react appel l'api local plusieurs fois de suite, donc mon server local envoi des requêtes a CoinGecko qui me bloque. J'aimerais faire en sorte que des lors que l'app reçois une valeur a sa requêtes qu'elle n'effectue pas d'autre requêtes. Voici un exemple de mes requêtes depuis mon app react :
import { useState, useEffect } from "react";
function
App() {
const [data, setData] = useState(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState(null)
useEffect(() => {
fetch("http://localhost:4500/coingecko")
.then(response => {
if
(response.ok) {
return
response.json()
}
throw
response;
}, [])
.then(data => {
setData(data)
})
.catch(error => {
console.error("Error fetching data: ", error)
setError(error)
})
.finally(() => {
setLoading(false)
})
}, [])
//console.log(data)
const uniswap = data&&data[0].tickers?.find(donne => donne.trade_url === 'https://app.uniswap.org/#/swap?inputCurrency=0x2260fac5e5542a773aa44fbcfedf7c193bc2c599&outputCurrency=ETH')
const uniprice = uniswap?.converted_last?.usd
const sushiswap = data&&data[2].tickers?.find(donne => donne.trade_url === 'https://app.sushi.com/swap?inputCurrency=0x2260fac5e5542a773aa44fbcfedf7c193bc2c599&outputCurrency=ETH')
const sushiprice = sushiswap?.converted_last?.usd
const curvefinance = data&&data[3].tickers?.find(donne => donne.base === 'DAI')
const curveprice = curvefinance?.converted_last?.usd
const quickswap = data&&data[4].tickers?.find(donne => donne.trade_url === 'https://quickswap.exchange/#/swap?inputCurrency=0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270&outputCurrency=0xbbba073c31bf03b8acf7c28ef0738decf3695683')
const quickprice = quickswap?.converted_last?.usd
console.log(uniprice)
console.log(sushiprice)
console.log(curveprice)
console.log(quickprice)
return
(
<>
{uniprice}
1
2
3
4
5
</>
)
}
export default
App;
Voici les retours des console.log :