【问题标题】:How to fetch data from an API which stream real time data如何从流实时数据的 API 中获取数据
【发布时间】:2022-02-06 04:58:51
【问题描述】:

我想在这里使用这个 API,

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

此端点检索每个游戏事件的详细实时信息。我正在尝试在节点 JS 中实现这一点。我怎样才能做到这一点?每当我们点击它时,此 API 都会重定向到不同的 URL。有什么办法可以从中解析数据吗?它返回这样的响应,

{
   "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
   }
}

【问题讨论】:

    标签: javascript node.js api ionic-framework


    【解决方案1】:

    您可以使用interval从API获取数据,然后将数据传递给websocket服务器

    【讨论】:

      【解决方案2】:

      如果此事件由​​您的 API 触发,请使用 eventsource。 https://developer.mozilla.org/en-US/docs/Web/API/EventSource

      否则 websocket 比 setInterval 好得多。

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2019-07-20
      • 1970-01-01
      • 2022-07-20
      • 2019-07-12
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多