Что такое API

Скажем, было бы неплохо, чтобы айфон подсказывал во сколько и в каком зале следующая игра. Ладно, хотя бы, чтобы сообщал, когда появляется информация о новом турнире. Где эту информацию брать?

В принципе, можно попробовать объяснить приложению на смартфоне, что можно открыть календарь на 175г, и что вот там под словами «по алтимату» пишутся иногда новые турниры, но висят только один день, и без дат, и формат не указан, но это можно ниже в календаре поискать. Когда нет другого способа — так и поступают, для кого-то это «обычный вторник на работе». Прямо сейчас по сайтам с арендой жилья ползают роботы с бумажками, на которых написано «принеси нам первую цифру после заголовка второго уровня».

Такой способ получения информации с сайта напрямую зависит от дизайна сайта. Если сайт молодой динамично развивающийся, на страницах сайта постоянно что-то добавляется, убирается, меняется местами. Нам по-прежнему нужны всего-то название и даты нового турнира, но после каждого обновления сайта скорее всего придется заново описывать маршрут по странице к этим данным.

Вот если бы была «секретная» страничка на сайте, на которой не было бы никакого оформления, меню, шрифтов и цветов, а всегда был бы только список новых турниров. То есть вот тупо две строчки на странице:

МФЛД, 7-9 мая, Москва, хэт
Вызов Питера, 16-17 июля, Солнечное, пляж 5х5

Такая страничка переживет большинство экспериментов с дизайном и всегда будет предоставлять максимум полезной информации с минимальным трафиком. И если показать эту страничку смартфону, он без труда сможет сообщать владельцу о новых турнирах.

Под каждую задачу можно завести отдельную такую же страничку — результаты турнира, ростеры команд — и все вместе они составят то, что называется API сайта.

API — это альтернативный способ получать информацию с сайта, не зависящий от дизайна сайта, которым пользуются не люди, а компьютерные программы (но пользуются «по-человечески»).

Пример запросов и ответов API

Давайте посмотрим, как может происходить общение айфона с API сайта.

Айфон: Какие-нибудь новые турниры добавились с последнего раза, как я уже спрашивал? *обращается к API: https://175g.ru/api/v1/tournaments?created_since=2016-03-25 08:48:00*

175г: Да, есть два новых:

{
    "data": [
        {
            "short_name": "Вызов Питера 2016",
            "date_begin": "16.07.2016",
            "date_end": "17.07.2016",
            "location": "Солнечное, С.-Петербург, Россия"
        },
        {
            "short_name": "Марлон Брандо 2016",
            "date_begin": "03.04.2016",
            "date_end": "03.04.2016",
            "location": "Санкт-Петербург, Россия"
        }
    ]
}

Айфон: Ок, поставил напоминалку купить билеты на Вызов. Покажи мне теперь результаты Брандо *обращается к API: https://175g.ru/api/v1/tournaments/828/results*

175г: Вот:

{
    "data": {
        "divisions": [
            {
                "name": "Женский дивизион",
                "teams": [
                    {
                        "place": "1",
                        "name": "СПбПУ им.Петра Великого"
                    },
                    {
                        "place": "2",
                        "name": "СПбГУ"
                    },
                    ...

Айфон: Спасибо *обращается к API: https://175g.ru/api/v1/thankyou*

175г: Пожалуйста

{
    "data": {
        "text": "You are welcome"
    }
}

Что умеет API

Сейчас API помогает получить доступ к следующей информации:

  • список всех турниров
  • новые турниры, добавленные после определенного времени
  • подробная информация о турнире с дивизионами и командами
  • результаты турнира
  • ростеры команд турнира
  • зарегистрированные на сайте игроки
  • новые игроки, зарегистрировавшиеся после определенного времени
  • турнирная история игрока

Описание запросов к API и ответов в документации.

Основная задача API на данный момент — заявить, что API вообще есть. Поэтому может так получиться, что текущей реализацией пользоваться сложно или невозможно. Формат дат ISO 8601 неудобный, а турнирную историю игрока нельзя сразу загрузить в Эксель. Предложения и замечания присылайте на почту mail@175g.ru или в личку паблика.

Последняя редакция: 16.04.2023 13:10
Поделиться
Отправить
Карта вики