From c4a6581568b84dc6f139ab04ca0de3e56ed8cc77 Mon Sep 17 00:00:00 2001 From: Evgeny Taktarov Date: Wed, 7 Aug 2024 20:48:57 +0700 Subject: [PATCH 1/4] fix: depreceated api response --- pages/api/oneinch-rate.ts | 6 +++++- pages/api/short-lido-stats.ts | 6 +++++- pages/api/sma-steth-apr.ts | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pages/api/oneinch-rate.ts b/pages/api/oneinch-rate.ts index 80132650b..473d8f58b 100644 --- a/pages/api/oneinch-rate.ts +++ b/pages/api/oneinch-rate.ts @@ -1,4 +1,7 @@ -import { wrapRequest as wrapNextRequest } from '@lidofinance/next-api-wrapper'; +import { + cacheControl, + wrapRequest as wrapNextRequest, +} from '@lidofinance/next-api-wrapper'; import { config } from 'config'; import { @@ -24,6 +27,7 @@ export default wrapNextRequest([ cors({ origin: ['*'], methods: [HttpMethod.GET] }), rateLimit, responseTimeMetric(Metrics.request.apiTimings, API_ROUTES.ONEINCH_RATE), + cacheControl({ headers: config.CACHE_DEFAULT_HEADERS }), sunsetBy({ sunsetTimestamp: API_LATER_SUNSET_TIMESTAMP, replacementLink: getReplacementLink(API_ROUTES.ONEINCH_RATE), diff --git a/pages/api/short-lido-stats.ts b/pages/api/short-lido-stats.ts index b8b694e1c..64e30dd2a 100644 --- a/pages/api/short-lido-stats.ts +++ b/pages/api/short-lido-stats.ts @@ -1,4 +1,7 @@ -import { wrapRequest as wrapNextRequest } from '@lidofinance/next-api-wrapper'; +import { + cacheControl, + wrapRequest as wrapNextRequest, +} from '@lidofinance/next-api-wrapper'; import { config } from 'config'; import { @@ -25,6 +28,7 @@ export default wrapNextRequest([ cors({ origin: ['*'], methods: [HttpMethod.GET] }), rateLimit, responseTimeMetric(Metrics.request.apiTimings, API_ROUTES.SHORT_LIDO_STATS), + cacheControl({ headers: config.CACHE_DEFAULT_HEADERS }), sunsetBy({ sunsetTimestamp: API_LATER_SUNSET_TIMESTAMP, replacementLink: getReplacementLink(API_ROUTES.SHORT_LIDO_STATS), diff --git a/pages/api/sma-steth-apr.ts b/pages/api/sma-steth-apr.ts index 4d21ea1cf..5cbdbbada 100644 --- a/pages/api/sma-steth-apr.ts +++ b/pages/api/sma-steth-apr.ts @@ -1,4 +1,7 @@ -import { wrapRequest as wrapNextRequest } from '@lidofinance/next-api-wrapper'; +import { + cacheControl, + wrapRequest as wrapNextRequest, +} from '@lidofinance/next-api-wrapper'; import { config } from 'config'; import { @@ -24,6 +27,7 @@ export default wrapNextRequest([ cors({ origin: ['*'], methods: [HttpMethod.GET] }), rateLimit, responseTimeMetric(Metrics.request.apiTimings, API_ROUTES.SMA_STETH_APR), + cacheControl({ headers: config.CACHE_DEFAULT_HEADERS }), sunsetBy({ sunsetTimestamp: API_DEFAULT_SUNSET_TIMESTAMP, replacementLink: getReplacementLink(API_ROUTES.SMA_STETH_APR), From 1d0eca47c4a60d67f7ae174be36e62b5069d266e Mon Sep 17 00:00:00 2001 From: Evgeny Taktarov Date: Wed, 7 Aug 2024 21:11:51 +0700 Subject: [PATCH 2/4] fix: proxy error handling --- utilsApi/cached-proxy.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utilsApi/cached-proxy.ts b/utilsApi/cached-proxy.ts index 3fb334a7d..3ad223d85 100644 --- a/utilsApi/cached-proxy.ts +++ b/utilsApi/cached-proxy.ts @@ -65,6 +65,8 @@ export const createCachedProxy = ({ if (e instanceof FetcherError && e.status >= 400 && e.status < 500) { console.warn(`[CachedProxy]Forwarding ${e.status} error from ${url}`); res.status(e.status); + res.send({ error: e.message }); + return; } console.warn(`[CachedProxy] Failed to proxy from ${url}`, e); res.status(500).end(); From c756be1464ec48838188252cf2984ed257b505b4 Mon Sep 17 00:00:00 2001 From: Evgeny Taktarov Date: Wed, 7 Aug 2024 21:16:24 +0700 Subject: [PATCH 3/4] fix: stalled request --- utilsApi/cached-proxy.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utilsApi/cached-proxy.ts b/utilsApi/cached-proxy.ts index 3ad223d85..6e1f5367c 100644 --- a/utilsApi/cached-proxy.ts +++ b/utilsApi/cached-proxy.ts @@ -40,7 +40,10 @@ export const createCachedProxy = ({ const cacheKey = `${proxyUrl}-${params?.toString() ?? ''}`; const cachedValue = cache.get(cacheKey); - if (cachedValue) return cachedValue; + if (cachedValue) { + res.json(cachedValue); + return; + } const url = proxyUrl + (params ? `?${params.toString()}` : ''); From f43fb073c71e11083bf3c4177be226392acac256 Mon Sep 17 00:00:00 2001 From: Evgeny Taktarov Date: Wed, 7 Aug 2024 21:20:22 +0700 Subject: [PATCH 4/4] fix: use res.json --- utilsApi/cached-proxy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilsApi/cached-proxy.ts b/utilsApi/cached-proxy.ts index 6e1f5367c..5710baa8c 100644 --- a/utilsApi/cached-proxy.ts +++ b/utilsApi/cached-proxy.ts @@ -68,7 +68,7 @@ export const createCachedProxy = ({ if (e instanceof FetcherError && e.status >= 400 && e.status < 500) { console.warn(`[CachedProxy]Forwarding ${e.status} error from ${url}`); res.status(e.status); - res.send({ error: e.message }); + res.json({ error: e.message }); return; } console.warn(`[CachedProxy] Failed to proxy from ${url}`, e);