Введение в использование Riot API в Python, часть 2

Это вторая часть серии руководств, в которой я рассказываю о создании мини-проекта с использованием Riot API на Python.

Вот ссылка на первую часть серии, если вы хотите начать с самого начала:«Использование API Riot с Python. Часть 1. Определение нашего мини-проекта и… | от TheConnoisseur | Сентябрь 2023 г. | Середина"

Добро пожаловать во вторую часть этой небольшой серии руководств по использованию Riot API в Python.

Ранее я представил мини-проект, над которым мы будем работать, и показал, как получить собственный ключ API разработки.

В этой части мы рассмотрим некоторые API, которые предлагает нам Riot, какие из них мы будем использовать в нашем скрипте Python и как вы можете вызывать их в своем веб-браузере.

Просмотр предлагаемых API

Чтобы просмотреть все API, предлагаемые Riot, просто нажмите кнопку «API» на панели инструментов вверху.

Обратите внимание, что это та же страница, на которой вы сгенерировали ключ API разработки.

Теперь вы увидите меню, которое выглядит следующим образом:

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

Я рекомендую просмотреть каждый из них и посмотреть, что вы можете найти. Вы найдете конечные точки API для всех видов данных из League of Legends, Valorant, Legends of Runeterra и других.

Какие API мы будем использовать?

Напоминаем, что мы создаем скрипт, который будет принимать внутриигровое имя игрока League of Legends и возвращать его коэффициент побед из последних 20 сыгранных игр.

В нашем мини-проекте мы будем использовать 3 конечные точки API:

  1. SUMMONER-V4: получение профиля призывателя по имени призывателя (Портал разработчиков Riot (riotgames.com)) принимает внутриигровое имя игрока (имя призывателя) и возвращает данные своего профиля.
  2. MATCH-V5, получение идентификаторов матчей по puuid игрока, (Портал разработчиков Riot (riotgames.com)) принимает puuid игроков и возвращает идентификаторы матчей из последних 20 игр. они сыграли.
  3. MATCH-V5, получение информации о совпадении по идентификатору матча (Портал разработчиков Riot (riotgames.com)) принимает идентификатор совпадения и возвращает информацию об этом совпадении.

Обратите внимание: в League of Legends игроки называются «призывателями», и в этом уроке я буду использовать их как взаимозаменяемые.

Теперь, когда вы знаете, какую информацию мы можем получить от API, давайте подробно опишем точные шаги, которые выполнит наш скрипт:

  1. Получение идентификатора игрока по его имени.
  2. Использование их puuid для получения идентификаторов последних 20 матчей, которые они сыграли.
  3. Получите информацию о матче, связанную с каждым идентификатором матча, и подсчитайте победы и поражения.
  4. Рассчитать и вернуть процент выигрыша

Наш мини-проект можно полностью разложить на 4 простых шага, используя всего 3 конечных точки API. Мы начнем реализовывать эти шаги в коде Python в следующей части руководства.

Но сначала давайте поговорим о том, как можно выполнить вызов API в браузере…

Выполнение вызовов API в вашем веб-браузере

Прежде чем мы перейдем к вызовам API в Python, давайте сначала поговорим о том, как вы будете вызывать их в своем веб-браузере.

Вы выполняете вызовы API с помощью HTTP-запросов Get, а затем данные возвращаются вам в формате JSON.

Таким образом, вы можете просто ввести действительный URL-адрес в браузере, чтобы вызвать API.

Вы можете использовать API-интерфейс портала разработчиков Riot для создания этих URL-адресов. Кроме того, он также может выполнять вызовы API и предоставлять вам возвращаемые данные.

Если это звучит немного запутанно, не волнуйтесь: просмотр примера прояснит любую путаницу, которая может у вас возникнуть.

Давайте рассмотрим пример того, как это работает.

Давайте выполним вызов конечной точки API SUMMONER-V4, где мы передадим имя призывателя и получим данные его профиля, включая его puuid.

Перейдите к конечной точке SUMMONER-V4 API на панели инструментов или перейдите по этой ссылке: Портал разработчиков Riot (riotgames.com).

Вы увидите такое раскрывающееся меню:

Здесь показаны подробности информации, возвращенной в результате успешного вызова API.

Идентификатор учетной записи игрока, идентификатор значка профиля, дата редакции, имя, идентификатор, идентификатор призывателя и уровень призывателя возвращаются нам в формате JSON.

Чуть ниже мы видим ошибки ответа, которые могут пойти не так при вызове API:

Вам пока не нужно сильно об этом беспокоиться. Они станут более актуальными, если их проверять при написании нашего скрипта Python.

Самая распространенная из таких ошибок — ошибка 401, связанная с запрещенным доступом. В большинстве случаев это происходит из-за того, что вы забыли прикрепить к вашему запросу действительный ключ API.

Чуть ниже вы увидите страницу, на которой вы выполняете вызовы API на портале разработчика:

Давайте вызовем API, где я хочу получить данные профиля моего призывателя с внутриигровым именем «Знаток».

Нам нужно будет выбрать регион, в котором находится этот призыватель, EUW в данном случае, и выбрать включение ключа API в параметр заголовка, чтобы авторизовать доступ к API.

Убедитесь, что ваш ключ API разработки действителен

Теперь давайте выполним наши запросы, нажав большую красную кнопку с надписью «выполнить запрос». Результат запроса появится в окне.

Первое, что вам нужно сделать, это проверить код ответа:

Вы хотите, чтобы это значение было 200, что означает, что запрос был успешным. Если оно находится в диапазоне от 400 до 500, посмотрите на скриншот выше с кодами ответов, чтобы понять, почему ваш запрос не был успешным.

Если ваш запрос был успешным, информация, возвращаемая вызовом API, будет находиться в теле ответа:

Он содержит информацию, запрошенную вами при вызове API. Как видите, он содержит информацию об аккаунте. Мы будем использовать эту информацию в нашем скрипте Python в следующей части руководства.

Последняя важная часть нашего ответа — это URL-адрес запроса:

Это URL-адрес, который мы можем скопировать в наш веб-браузер, чтобы оттуда выполнить вызов API, и именно так мы будем выполнять вызовы API в Python.

Итак, давайте попробуем. Скопируйте сгенерированный для вас URL-адрес запроса, вставьте его в браузер и нажмите Enter.

Вы получите ответ в формате JSON, который выглядит следующим образом:

Не удалось, но можете ли вы понять, почему?

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

В данном случае он не прикреплен, поэтому нам нужно добавить наш ключ API разработки в конец нашего URL-адреса следующим образом: https://euw1.api.riotgames.com/lol/summoner/v4/summoners/ by-name/Conoisseur?api_key=YOUR_API_KEY», где вы замените YOUR_API_KEY своим ключом API разработки.

Теперь, когда вы выполните запрос, вы получите что-то похожее на это:

Успех!

На этом мы завершаем эту часть руководства.

Мы рассмотрели различные вызовы API, которые будем использовать, и научились их выполнять.

В следующей части мы рассмотрим, как закодировать все это на Python и предоставить Python доступ к ответу JSON, который мы только что сгенерировали из API.

Ссылка на следующую часть будет добавлена ​​сюда, когда она будет завершена!

Спасибо за чтение!
Если вам понравилась эта статья, не стесняйтесь похлопать ее и просмотреть другие мои статьи :)