open atlas

apis

API

Как программы общаются друг с другом по сети — основные стили (REST, GraphQL, gRPC) и как спроектировать такой интерфейс, чтобы им было удобно пользоваться и при изменениях.

9 юнитов·46 уроков·~39 ч

Начать трек
00

С нуля

Перед senior-материалом: что вообще такое API и горстка слов, которые остальной трек считает уже знакомыми.
01

Rest modeling

Скоро — Контракты API
02

Status codes real

Скоро — Контракты API
03

Pagination

Скоро — Контракты API
04

Openapi

Скоро — Контракты API
05

Grpc protobuf

Скоро — Контракты API
06

GraphQL N+1 и цена вложенных резолверов

Почему один GraphQL-запрос превращается в 1000 SQL-вызовов, как DataLoader чинит это за один тик event loop, и какие complexity / depth / persisted-query барьеры удерживают публичные API в живых.
07

Rate limiting

Скоро — Контракты API
08

Putting it together

Скоро — Контракты API

Проекты по этому треку

Guided-проекты, которые закрепляют изученное здесь.

◆ Проекты

Сервис фич-флагов

Собери небольшой сервис флагов с правилами таргетинга, процентными раскатками и типизированным SDK, который вычисляет флаги на клиенте из закешированного набора правил.

◆ Проекты

Мини-CRUD API

Собери свой первый настоящий бэкенд: крошечный HTTP API, который создаёт, читает, обновляет и удаляет заметки — на SQLite, чтобы данные пережили перезапуск. Ты пройдёшь путь от сервера в одну строку с «hello» до небольшого сервиса, который проверяет ввод и хранит строки, — честно, шаг за шагом.

◆ Проекты

Мини OAuth 2.0 + PKCE логин

Реализуй поток authorization-code + PKCE целиком против реального провайдера, чтобы понять каждый редирект и токен, а не доверять библиотеке.

◆ Проекты

Загрузка через presigned URL

Прямая загрузка в хранилище через presigned URL с ограничениями размера и content-type и webhook завершения, проверяющим, что объект действительно прибыл, — чтобы API-сервер никогда не касался байт файлов.

◆ Проекты

Распределённый rate limiter

Собери token-bucket лимитер, который держится поперёк многих инстансов приложения за счёт счётчика в Redis, а не в памяти процесса.

◆ Проекты

Типобезопасный SDK для API

Собери клиент, которому другие инженеры действительно будут доверять: типизированный SDK поверх настоящего HTTP API, где неправильное поле, пропущенный вариант и ответ, соврамший о своей форме, ловит компилятор — а не падение в проде. Ты смоделируешь домен через размеченные объединения и дженерики, проверишь каждый ответ на границе и дашь выводу типов донести точные типы до места вызова, не оставив ни одного `any`, которым прикрывают дыры.

◆ Проекты

URL-сокращатель под нагрузкой

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

Следующий трек

Базы данных

Как базы данных хранят и быстро находят данные, сохраняют их целостность, когда пишут сразу много пользователей, и растут вместе с объёмом.