Перейти к основному контенту
Tech Path Finder
КурсыИнтервьюКод-ревьюБлог
Tech Path Finder

Персонализированный путеводитель в IT. Квизы, мок-интервью, код ревью и аналитика прогресса.

@potapov_me

Платформа

  • Курсы
  • Прогресс
  • Мок-интервью
  • Код ревью
  • Живое ревью с ИИ
  • Тренажёр переговоров
  • Закладки

Контент

  • Блог
  • Главная
  • Обратная связь

Компания

  • О проекте
  • Тарифы
  • Условия использования
  • Конфиденциальность
  • Согласие на обработку данных
  • Cookie
  • Реквизиты

Аккаунт

  • Войти
  • Зарегистрироваться
  • Профиль

© 2026 Tech Path Finder. Все права защищены.

·ИП Потапов К.С.·Политика конфиденциальности·
Сделано с ❤️ в России
  1. Проектирование API
System Design / API·12 тем·50 вопросов·уровень Middle, Senior

Проектирование API

Комплексный курс по проектированию API: от основ REST и версионирования до безопасности, документирования, тестирования и современных подходов вроде GraphQL. Охватывает лучшие практики, паттерны и анти-паттерны для создания надежных, масштабируемых и удобных для разработчиков интерфейсов.

Начать курс

Проектирование API

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

Двенадцать тем. REST по существу: ресурсы и их именование, семантика методов, статус-коды, HATEOAS и модель зрелости Ричардсона — с трезвым разбором, какой уровень нужен на практике. Версионирование: в пути, в заголовке, через согласование контента, и главное — процедура вывода старой версии из эксплуатации, которая начинается задолго до отключения.

Дальше то, что клиенты замечают в первую очередь. Пагинация: смещением, курсорная, keyset — и почему на больших таблицах OFFSET 100000 перестаёт работать. Ошибки: единый формат ответа, коды, RFC 7807. Ограничение частоты запросов: token bucket и скользящее окно, квоты, заголовок Retry-After, чтобы клиент знал, когда возвращаться. Идемпотентность: ключи и безопасные повторы там, где повтор означает второй платёж.

Отдельные темы: вебхуки — доставка событий, подписи, повторы и проверка на стороне получателя; спецификация OpenAPI со схемами, валидацией и генерацией кода; документация и порталы для разработчиков; безопасность — OAuth2, JWT, ключи, защита от типовых атак; GraphQL со схемами, резолверами, мутациями и подписками, и разбор, когда он решает проблему, а когда добавляет. Финал — тестирование: контрактное, интеграционное, нагрузочное.

Нужен опыт разработки веб-сервисов. Примеры не привязаны к языку.

  1. 1

    Лучшие практики REST

    Ресурсы, HTTP методы, статусные коды, HATEOAS, модель зрелости Ричардсона

    4 вопроса
  2. 2

    Версионирование API

    Версионирование через URL, заголовки, согласование контента и стратегии депрекации

    4 вопроса
  3. 3

    Спецификация OpenAPI

    Swagger, определение схем, валидация, генерация кода и документация

    4 вопроса
  4. 4

    Ограничение запросов

    Алгоритмы токен-бакета и скользящего окна, квоты, ограничение скорости и заголовок Retry-After

    4 вопроса
  5. 5

    Идемпотентность

    Идемпотентные ключи, безопасные и идемпотентные методы, паттерны повторных попыток

    4 вопроса
  6. 6

    Проектирование Webhooks

    Доставка событий, цифровые подписи, логика повторных попыток и верификация

    4 вопроса
  7. 7

    Пагинация

    Пагинация с офсетом, курсорная и keyset-пагинация, бесконечный скролл

    4 вопроса
  8. 8

    Обработка ошибок

    Форматы ответов об ошибках, статусные коды, детали проблем (RFC 7807)

    4 вопроса
  9. 9

    Безопасность API

    Аутентификация, авторизация, OAuth2, JWT, API-ключи и защита от атак

    6 вопросов
  10. 10

    Документация API

    OpenAPI, Redoc, Postman, порталы для разработчиков и лучшие практики документирования

    4 вопроса
  11. 11

    GraphQL

    Проектирование схем, резолверы, запросы, мутации и подписки

    4 вопроса
  12. 12

    Тестирование API

    Контрактное тестирование, интеграционное тестирование и нагрузочное тестирование

    4 вопроса
  13. Зачёт

    Доступен после всех тем (0 из 12)

  14. Экзамен

    Доступен после зачёта

12 / 12

REST

Основы и Архитектура

Representational State Transfer — архитектурный стиль для создания распределенных систем, основанный на использовании HTTP и его методов для взаимодействия с ресурсами.

Пример

GET /users/123 возвращает данные пользователя с ID 123.

Связанные термины

HATEOAS

Основы и Архитектура

Hypermedia As The Engine Of Application State — принцип REST, при котором API возвращает ссылки на связанные ресурсы и доступные действия, позволяя клиенту динамически обнаруживать функциональность.

Пример

В ответе на GET /orders/123 есть поле `_links` со ссылками на `/orders/123/cancel` и `/orders/123/invoice`.

Связанные термины

Idempotency Key

Основы и Архитектура

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

Пример

Заголовок `Idempotency-Key: abc123` используется для предотвращения двойной оплаты при повторном отправлении платежного запроса.

Связанные термины

Rate Limiting

Основы и Архитектура

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

Пример

Алгоритм токен-бакета: бакет емкостью 100 токенов пополняется со скоростью 10 токенов в секунду. Каждый запрос забирает 1 токен.

Связанные термины

Pagination

Основы и Архитектура

Процесс разделения большого набора данных на более мелкие, управляемые части (страницы) для улучшения производительности и удобства использования.

Пример

Курсорная пагинация: `SELECT * FROM posts WHERE id > :last_id ORDER BY id ASC LIMIT 10`.

Связанные термины

RFC 7807

Основы и Архитектура

Стандартный формат для представления деталей ошибок в HTTP-ответах, обеспечивающий последовательность и машинную читаемость через поля `type`, `title`, `status`, `detail`.

Пример

Ответ с кодом 400 содержит JSON: `{"type": "...", "title": "Validation Error", "status": 400, "detail": "Email is required"}`.

Связанные термины

OAuth2

Безопасность

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

Пример

Приложение запрашивает у пользователя разрешение на доступ к его Google-календарю через OAuth2 flow.

Связанные термины

JWT

Безопасность

JSON Web Token — компактный, самодостаточный способ безопасной передачи информации между сторонами в виде JSON-объекта, который может быть проверен и доверен.

Пример

Токен `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` содержит информацию о пользователе и сроке действия.

Связанные термины

OpenAPI

Документирование и Тестирование

Стандарт для описания RESTful API в машиночитаемом формате (обычно YAML или JSON), который используется для автоматической генерации документации, клиентского кода и тестов.

Пример

Файл `swagger.yaml` описывает все эндпоинты, параметры и схемы ответов API.

Связанные термины

Webhook

Документирование и Тестирование

Механизм обратной связи, при котором сервер отправляет HTTP-запрос на заранее заданный URL клиента при наступлении определенного события.

Пример

Сервер отправляет POST-запрос на `https://client.com/events` при создании нового заказа (`event: order.created`).

Связанные термины

GraphQL

Современные Подходы

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

Пример

Клиент отправляет запрос `{ user(id: "123") { name, email } }` и получает только нужные поля.

Связанные термины

Contract Test

Документирование и Тестирование

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

Пример

Тест проверяет, что эндпоинт `/users` возвращает JSON, соответствующий схеме `UserResponse` из OpenAPI.

Связанные термины

Частые вопросы о курсе «Проектирование API»

Состав курса, уровни, практика и способы проверки знаний.

Что входит в курс «Проектирование API»?

Курс включает 12 тем и 50 вопросов с разбором ответа. Начать можно с первой темы курса.

Для какого уровня рассчитан курс «Проектирование API»?

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

Как проверить, что материал усвоен?

После прохождения тем доступен зачёт по курсу «Проектирование API» — 20 случайных вопросов с порогом 80%. После зачёта открывается экзамен с развёрнутыми ответами и автоматической оценкой, приближённый к техническому собеседованию.

Курс «Проектирование API» бесплатный?

Да, курс полностью бесплатный: все 12 тем доступны без оплаты.