Home > front end >  How to fetch data from an API which stream real time data
How to fetch data from an API which stream real time data

Time:02-06

I want to use this API here,

https://developer.sportradar.com/docs/read/basketball/NCAA_Mens_Basketball_v7#tournament-summary-seeded-tournaments-only

This endpoint retrieves detailed, real-time information on every game event. I am trying to implement this in node JS. How can I do this? This API redirect to different URL whenever we hit it. Is there any way to do parse data from this? It returns response like this,

{
   "heartbeat":{
      "interval":5000
   }
}

{
   "payload":{
      "game":{
         "id":"0db78438-9663-470f-b3ae-1f9106298e47",
         "status":"inprogress",
         "coverage":"full",
         "scheduled":"2021-02-27T17:00:00 00:00",
         "home":{
            "name":"Hoosiers",
            "market":"Indiana",
            "id":"c3f0a8ce-af67-497f-a750-3b859376b20a",
            "points":57,
            "rank":0,
            "bonus":true,
            "remaining_timeouts":2
         },
         "away":{
            "name":"Wolverines",
            "market":"Michigan",
            "id":"bdc2561d-f603-4fab-a262-f1d2af462277",
            "points":73,
            "rank":3,
            "remaining_timeouts":1
         }
      },
      "event":{
         "id":"a2b43bd2-1b79-4823-b76c-21a09eb1adea",
         "event_type":"rebound",
         "sequence":1614445806980,
         "clock":"18:32",
         "clock_decimal":"18:32",
         "updated":"2021-10-26T16:29:17Z",
         "created":"2021-02-27T17:10:06Z",
         "description":"Hunter Dickinson defensive rebound",
         "home_points":57,
         "away_points":73,
         "attribution":{
            "name":"Wolverines",
            "market":"Michigan",
            "id":"bdc2561d-f603-4fab-a262-f1d2af462277",
            "team_basket":"right"
         },
         "location":{
            "coord_x":102,
            "coord_y":236,
            "action_area":"backcourt"
         },
         "possession":{
            "name":"Wolverines",
            "market":"Michigan",
            "id":"bdc2561d-f603-4fab-a262-f1d2af462277"
         },
         "period":{
            "id":"1f18ca8c-6a96-43f7-b68c-4d1b333e059c",
            "number":1,
            "sequence":1,
            "type":"half"
         },
         "on_court":{
            "home":{
               "name":"Hoosiers",
               "market":"Indiana",
               "id":"c3f0a8ce-af67-497f-a750-3b859376b20a",
               "players":[
                  {
                     "full_name":"Aljami Durham",
                     "jersey_number":"1",
                     "id":"6897db83-b25f-4c54-832a-0ff0c3cb86ff"
                  },
                  {
                     "full_name":"Rob Phinisee",
                     "jersey_number":"10",
                     "id":"481ffe40-392b-4a1b-89ec-0d9453495639"
                  },
                  {
                     "full_name":"Jerome Hunter",
                     "jersey_number":"21",
                     "id":"681d2cc6-24b9-4f38-8564-8c0b210a9535"
                  },
                  {
                     "full_name":"Trayce Jackson-Davis",
                     "jersey_number":"23",
                     "id":"c468bdc9-4778-496a-985e-7911dc6a1ff2"
                  },
                  {
                     "full_name":"Race Thompson",
                     "jersey_number":"25",
                     "id":"ed56bced-c614-4eeb-85ee-812edb594752"
                  }
               ]
            },
            "away":{
               "name":"Wolverines",
               "market":"Michigan",
               "id":"bdc2561d-f603-4fab-a262-f1d2af462277",
               "players":[
                  {
                     "full_name":"Hunter Dickinson",
                     "jersey_number":"1",
                     "id":"1d0c6b20-76b7-4a82-ae1d-20b78136525b"
                  },
                  {
                     "full_name":"Isaiah Livers",
                     "jersey_number":"2",
                     "id":"34736ed7-c86a-472c-8c1c-683002de6487"
                  },
                  {
                     "full_name":"Mike Smith",
                     "jersey_number":"12",
                     "id":"92f6b357-f6cb-40a5-8893-329425fff5ba"
                  },
                  {
                     "full_name":"Franz Wagner",
                     "jersey_number":"21",
                     "id":"ec3df621-2a9d-483c-9064-11b44d8841a9"
                  },
                  {
                     "full_name":"Eli Brooks",
                     "jersey_number":"55",
                     "id":"8869c334-f08c-4ed9-931c-9d9c657cb7bc"
                  }
               ]
            }
         },
         "statistics":[
            {
               "type":"rebound",
               "rebound_type":"defensive",
               "team":{
                  "name":"Wolverines",
                  "market":"Michigan",
                  "id":"bdc2561d-f603-4fab-a262-f1d2af462277"
               },
               "player":{
                  "full_name":"Hunter Dickinson",
                  "jersey_number":"1",
                  "id":"1d0c6b20-76b7-4a82-ae1d-20b78136525b"
               }
            }
         ]
      }
   },
   "locale":"en",
   "metadata":{
      "league":"NCAAM",
      "match":"sd:match:0db78438-9663-470f-b3ae-1f9106298e47",
      "status":"inprogress",
      "team":"sd:team:bdc2561d-f603-4fab-a262-f1d2af462277",
      "players":"sd:player:6897db83-b25f-4c54-832a-0ff0c3cb86ff,sd:player:481ffe40-392b-4a1b-89ec-0d9453495639,sd:player:681d2cc6-24b9-4f38-8564-8c0b210a9535,sd:player:c468bdc9-4778-496a-985e-7911dc6a1ff2,sd:player:ed56bced-c614-4eeb-85ee-812edb594752,sd:player:1d0c6b20-76b7-4a82-ae1d-20b78136525b,sd:player:34736ed7-c86a-472c-8c1c-683002de6487,sd:player:92f6b357-f6cb-40a5-8893-329425fff5ba,sd:player:ec3df621-2a9d-483c-9064-11b44d8841a9,sd:player:8869c334-f08c-4ed9-931c-9d9c657cb7bc",
      "event_type":"rebound",
      "event_category":"shot",
      "locale":"en",
      "operation":"update",
      "version":"v7"
   }
}

{
   "heartbeat":{
      "interval":5000
   }
}

CodePudding user response:

you can use interval to get the data from API and then passing the data to websocket server

CodePudding user response:

Eventsource if event is triggered by your API. https://developer.mozilla.org/en-US/docs/Web/API/EventSource

  •  Tags:  
  • Related