Добро пожаловать в курс "API с Go"!
Этот курс посвящён практическому изучению интеграции с внешними API в Go. Вы шаг за шагом освоите работу с REST API, OAuth 2.0 аутентификацией, Long polling паттерном, низкоуровневыми сетевыми протоколами (ICMP, raw sockets), обработкой ошибок и retry стратегиями, rate limiting и параллельной обработкой запросов. Всё это — на реальных задачах, которыми можно пользоваться: от погодной CLI-утилиты с умным кэшированием до утилиты синхронизации облачных хранилищ, от трейсера маршрутов с визуализацией географии интернет-трафика до Telegram бота, который получает и AI-суммаризирует новости.
Курс подготовит вас не только к работе с существующими API, но и даст фундамент для создания собственных API с учётом лучших практик и ошибок, которые вы встретите при интеграции с внешними сервисами.
Курс состоит из 4 проектов. Для устойчивого роста сложности рекомендуем такой порядок:
Начните с фундамента работы с REST API. Создадите интерактивное CLI-приложение для просмотра погоды, которое интегрируется с Open-Meteo API (геокодинг + прогнозы). Освоите HTTP-клиенты с таймаутами, retry-логику с exponential backoff, умное кэширование с разными TTL (5/15/30 минут), clean architecture с разделением на слои, интерактивный UI с ANSI-цветами.
Ключевые навыки: REST API интеграция, HTTP клиент, кэширование с TTL, обработка ошибок, retry стратегии, CLI/UX дизайн, чистая архитектура.
Поднимите планку: множественные API, OAuth аутентификация, параллелизм. Создадите CLI-утилиту для синхронизации локальной директории с Google Drive и Яндекс.Диском. Реализуете OAuth 2.0 flow для обоих сервисов, универсальный интерфейс Storage для работы с любыми хранилищами (Google Drive SDK, Яндекс.Диск REST API, локальная ФС), модуль сравнения данных для определения различий, параллельную загрузку файлов через горутины, структурированное логирование (slog).
Ключевые навыки: OAuth 2.0, работа с SDK и REST API, интерфейсы и абстракции, файловые операции, параллелизм (горутины, sync.WaitGroup), структурированное логирование.
Погрузитесь в низкоуровневое сетевое программирование. Создадите утилиту, которая выполняет traceroute к целевому хосту, определяет геолокацию каждого узла через GeoIP API и визуализирует маршрут на интерактивной карте. Освоите ICMP протокол и raw sockets, TTL для обнаружения промежуточных узлов, паттерн Provider (Strategy) для поддержки множественных GeoIP сервисов, context для graceful shutdown (Ctrl+C), генерацию HTML с интерактивными картами (Leaflet.js).
Ключевые навыки: Низкоуровневые сетевые протоколы (ICMP, raw sockets), context и cancellation, graceful shutdown, паттерн Strategy, HTML шаблоны, веб-визуализация, обработка сигналов ОС.
Финальный проект, объединяющий все навыки. Создадите Telegram бота, который получает новости по интересующим темам через NewsAPI.org и суммаризирует их через Google Gemini AI API. Реализуете Long polling для Telegram Bot API, управление подписками пользователей (сохранение в JSON, потокобезопасность через mutex), кэширование суммаризаций для экономии AI API лимитов, rate limiting для соблюдения ограничений API, graceful error handling и degradation (mock-провайдеры при сбоях).
Ключевые навыки: Long polling паттерн, Bot API, управление состоянием, конкурентность и синхронизация (mutex), интеграция AI API, rate limiting, graceful degradation, работа с JSON, архитектура многокомпонентных систем.
Такая последовательность обеспечивает плавный рост сложности:
Каждый проект строится на навыках предыдущих, добавляя новые концепции и усложняя архитектуру.
Если у вас уже есть опыт работы с API, вы можете менять порядок. Например, начать с Disk Sync, если интересна работа с OAuth и облачными хранилищами, или с GeoTracer, если привлекает низкоуровневое сетевое программирование. Для начинающих мы настоятельно советуем придерживаться предложенного маршрута.


Утилита командной строки для автоматической синхронизации локальных файлов с облачными хранилищами Google Drive и Яндекс.Диск. Проект демонстрирует работу с внешними REST API, OAuth 2.0 аутентификацией и параллельной загрузкой файлов с использованием горутин. Вы научитесь проектировать гибкую архитектуру на основе интерфейсов, позволяющую легко добавлять новые типы хранилищ.

GeoTracer — утилита командной строки, которая визуализирует путь сетевых пакетов от вашего компьютера до любого сервера в мире на интерактивной карте. Она выполняет traceroute, определяет географическое местоположение каждого промежуточного узла и создает красивую HTML-страницу с маршрутом на карте.

Создадим Telegram-бота, который получает новости по интересующим вас темам через REST API новостного сервиса и суммаризирует их с помощью AI API. Пользователь может подписаться на темы и получить новости по требованию прямо в чат. Это практический инструмент для отслеживания новостей с минимальными затратами и максимальной гибкостью.