首页 > 解决方案 > API GET 请求未反映 DB 中的更改,延迟 5 分钟

问题描述

我正在尝试制作一个网络应用程序,使用提供的公共 API 通知新疫苗插槽何时到达政府门户网站。

我需要的是每分钟调用一次 API 并检查插槽是否已添加到数据库中。但是我得到的响应是陈旧的,因为我的应用程序(也在 Chrome 中)检测到的新会话大约有 5 分钟的历史,我知道这一点是因为一些电报频道比我的应用程序更早地显示更新。

此外,当我尝试使用 Postman 访问相同的 API 时,我得到的响应是新鲜的。

问题是 - Chorme/myApp 响应未反映更新的数据库...但邮递员正在显示更新的数据库... chrome 在邮递员中显示 5 分钟后收到更新的响应。

公共 API:https ://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByDistrict?district_id=141&date=06-07-2021

let response = await fetch(`https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByDistrict?district_id=${id}&date=${today}`, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Connection': 'keep-alive',
            },
        })

我是否需要在我的获取请求中更改某些标头或其他任何内容?...或其他任何内容???

帮帮忙,我修一下...

标签: node.jsapigetfetchpostman

解决方案


这么几件事。
首先,使用按地区 API 查找而不是按地区 API 进行日历。那更准确。
https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/findByDistrict?district_id=512&date=31-03-2021
其次,通过用户代理。这是在 PHP 中,但您可以随时更新到其他语言。

    $header     = array(
                    "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                    "Pragma: no-cache",
                    "Cache-Control: no-cache",
                    "Accept-Language: en-us",
                    "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15",
                    "Upgrade-Insecure-Requests: 1"
                    );

推荐阅读