Представляем агрегатор API футбольных событий, который охватывает более 950 лиг, включая Премьер-лигу, Серию А, Ла Лигу, Лигу 1 и Бундеслигу.

В настоящее время существует множество поставщиков API, которые предлагают широкий спектр спортивных данных. К сожалению, есть еще две распространенные проблемы, с которыми сталкиваются такие приложения:

  • отсутствие информации о ставках,
  • отсутствие освещения основных моментов в реальном времени.

На рынке уже существуют различные API для ставок на спорт, которые решают ранее упомянутую проблему, хотя освещение основных моментов все еще остается недостаточной темой. Как разработчик, я всегда искал способы интеграции основных моментов с уже существующим Football API. На момент написания этой статьи я нашел Football Highlights API от Highlightly одним из лучших вариантов. Они предлагают не только обзоры игр и интервью после матчей, но и такие события, как пропущенные пенальти, желтые/красные карточки, голы и многое другое. Следует также отметить, что агрегирование основных моментов происходит в режиме реального времени, что просто потрясающе.

Предварительные условия для интеграции API

Получить доступ к вышеупомянутому API довольно просто. Для запуска вам как разработчику нужна только учетная запись Rapid API.

После успешного входа в систему вы можете выбрать уровень API BASIC, который является бесплатным. Лично я считаю уровень PRO лучшим, поскольку он довольно дешев и позволяет свободно запрашивать все данные.

Примечание. API TOKEN, который вы получаете от Rapid API, должен надежно храниться на вашем сервере. Не показывайте это своим клиентам.

Получение данных о футбольных событиях

Есть много крутых языков программирования. Поскольку для меня лучше всего подходит Javascript, я покажу вам несколько способов получения данных API Football Highlights (документацию можно найти здесь).

Есть несколько маршрутов, которые мы можем использовать для получения данных:

  • /countries и /countries/{countryCode
  • /teams и /teams/{team_id
  • /leagues и /leagues/{league_id
  • /matches и /matches/{match_id
  • /highlights и /highlights/{highlight_id

Маршруты стран, команд и лиг более или менее служат полезным целям. Поскольку весь смысл этого API заключается в полной интеграции с другими API-интерфейсами Football, у него должна быть возможность выполнять простые и интуитивно понятные запросы к основным моментам без необходимости использования каких-либо id, верно?

Давайте создадим простую функцию, которая будет запускать HTTP-запрос для получения данных об основных моментах:

const axios = require("axios");

const fetchFootballHighlightsData = async (queryParams) => {
  const options = {
    method: "GET",
    url: "https://football-highlights-api.p.rapidapi.com/highlights",
    params: queryParams,
    headers: {
      "X-RapidAPI-Key": "<API TOKEN>",
      "X-RapidAPI-Host": "football-highlights-api.p.rapidapi.com",
    },
  };

  try {
    const response = await axios.request(options);
    console.log(response.data);
  } catch (error) {
    console.error(error);
  }
};

Обязательно добавьте свой собственный X-RapidAPI-Key, который можно получить при подписке на любой уровень API. Благодаря этому мы можем получать данные так, как захотим. Например.:

fetchFootballHighlightsData({
  leagueName: "Superliga",
});

Приведенный выше вызов функции приведет к получению следующих данных:

{
    data: [
      {
        id: 2753,
        type: 'VERIFIED',
        imgUrl: 'https://cms.superliga.dk/media/5sfgnynq/sl_seo-fallback.png?width=1200',
        title: 'Superliga: FC Midtjylland vs Hvidovre',
        description: 'Game recap',
        url: 'https://superliga.dk/kampe/2023-2024/fc-midtjylland-hvidovre-if-21-07-2023',
        match: [Object]
      },
      {
        id: 3071,
        type: 'VERIFIED',
        imgUrl: 'https://cms.superliga.dk/media/5sfgnynq/sl_seo-fallback.png?width=1200',
        title: 'Superliga: Lyngby vs FC Copenhagen',
        description: 'Game recap',
        url: 'https://superliga.dk/kampe/2023-2024/lyngby-boldklub-f-c-kobenhavn-22-07-2023',
        match: [Object]
      },
      {
        id: 3748,
        type: 'VERIFIED',
        imgUrl: 'https://cms.superliga.dk/media/5sfgnynq/sl_seo-fallback.png?width=1200',
        title: 'Superliga: Odense vs Randers FC',
        description: 'Game recap',
        url: 'https://superliga.dk/kampe/2023-2024/ob-randers-fc-23-07-2023',
        match: [Object]
      },
      {
        id: 3548,
        type: 'UNVERIFIED',
        imgUrl: 'https://cms.superliga.dk/media/5sfgnynq/sl_seo-fallback.png?width=1200',
        title: 'Superliga: Silkeborg vs Brondby',
        description: null,
        url: 'https://superliga.dk/kampe/2023-2024/silkeborg-if-brondby-if-23-07-2023',
        match: [Object]
      },
      {
        id: 3944,
        type: 'UNVERIFIED',
        imgUrl: 'https://cms.superliga.dk/media/5sfgnynq/sl_seo-fallback.png?width=1200',
        title: 'Superliga: FC Nordsjaelland vs Viborg',
        description: null,
        url: 'https://superliga.dk/kampe/2023-2024/fc-nordsjaelland-viborg-ff-24-07-2023',
        match: [Object]
      },
      ...
    ],
    pagination: { totalCount: 423, offset: 0, limit: 40 }
  }

API поддерживает целый ряд параметров запроса, а не только название лиги, как представлено в приведенном выше примере (вы можете использовать такие поля запроса, как дата, сезон, код страны, имя страны и т. д.).

Поскольку рассмотрение всех примеров займет много времени, я просто предлагаю вам посетить Страницу быстрого тестирования конечных точек API и немного поиграть с API.

Заключение

Освещение основных моментов в режиме реального времени является основной проблемой нынешней отрасли. Мы представили простой, но мощный агрегатор API для Актуальных моментов футбола, который собирает отрывки из основных моментов, обзоры игр, интервью, желтые/красные карточки, моменты забитых голов в режиме реального времени. Сам API поддерживает не только высшие лиги, но и другие менее известные. Я предлагаю проверить план BASIC, который является бесплатным, чтобы понять, как работает API, прежде чем переходить на план PRO или выше, чтобы получать неограниченное количество основных моментов во всех лигах.

Примечание. План BASIC поддерживает только часть лиг (на момент написания статьи это около 20 лиг).