apis
API
Как программы общаются друг с другом по сети — основные стили (REST, GraphQL, gRPC) и как спроектировать такой интерфейс, чтобы им было удобно пользоваться и при изменениях.
Начать трек →С нуля
Перед senior-материалом: что вообще такое API и горстка слов, которые остальной трек считает уже знакомыми.Rest modeling
Скоро — Контракты APIStatus codes real
Скоро — Контракты APIPagination
Скоро — Контракты APIOpenapi
Скоро — Контракты APIGrpc protobuf
Скоро — Контракты APIGraphQL N+1 и цена вложенных резолверов
Почему один GraphQL-запрос превращается в 1000 SQL-вызовов, как DataLoader чинит это за один тик event loop, и какие complexity / depth / persisted-query барьеры удерживают публичные API в живых.Rate limiting
Скоро — Контракты APIPutting 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-сокращатель, который выдерживает настоящий трафик, — а потом эксплуатируй его: задеплой, наблюдай и разберись с инцидентом, когда одна горячая ссылка плавит твой кэш.
Базы данных
Как базы данных хранят и быстро находят данные, сохраняют их целостность, когда пишут сразу много пользователей, и растут вместе с объёмом.