HTTP API и серверные основы
Контракты запросов, проверка данных, коды ошибок, пагинация, файлы, cookies, авторизация, права, платежи и фоновые очереди.
116 материаловСерверные приложения, базы данных, авторизация и интеграции.
Контракты запросов, проверка данных, коды ошибок, пагинация, файлы, cookies, авторизация, права, платежи и фоновые очереди.
116 материаловPython с Django и FastAPI, PHP с Composer и Laravel, Node.js, ASP.NET Core с EF Core, Java и Kotlin со Spring Boot и Ktor, Go
365 материаловPostgreSQL, MySQL, SQL Server, SQLite, Redis, SQL, индексы, планы, транзакции, миграции, ORM и конкурентное изменение данных.
247 материаловOpenAPI, документация, SDK, версии, квоты, идемпотентность, вебхуки, повторная доставка, подписи событий и кабинет разработчика.
26 материаловОткрытые API, RSS, парсинг, Scrapy, мониторинг изменений, очистка, объединение, CSV, Excel, JSON и обработка больших файлов.
14 материаловActivityPub, федерация, обмен публикациями и подписки между сервисами
Материалы готовятсяЗадать контракт задачи и устойчивый jobId.
Отделить HTTP-ответ от добавления остатков товаров.
Различать временный сбой и непригодные данные.
Записать остатки и отметку импорта одним Lua-скриптом.
Объяснить повтор выполнения после потери воркера.
Ограничить параллельность и сохранить атомарность результата.
Показать состояние задачи и события QueueEvents.
Ограничить retention, закрыть соединения и описать эксплуатацию.
Шестнадцать последовательных уроков от HTTP-каталога до конкурентного расписания и передачи проекта.
Различать адрес ресурса, HTTP-операцию и JSON-ответ проекта «Окно».
Описать входной интервал и внешнюю карточку отдельными моделями.
Возвращать различимые ошибки маршрута, схемы и предметной операции.
Отделить настройки процесса от данных бронирования и кода маршрута.
Подключать каталог через Depends и подготовить замену его хранилища.
Создать договор хранения кабинетов и броней в последовательной SQL-миграции.
Записать бронь и вернуть внешнюю модель после успешной фиксации.
Принимать только даты со смещением и сравнивать их как моменты времени.
Запретить пересекающиеся подтверждённые интервалы одного кабинета в PostgreSQL.
Связать один ключ с одной сохранённой операцией и её первоначальным ответом.
Получать владельца на сервере и ограничивать доступ его записью.
Отменять свою бронь без удаления истории и освобождать её интервал.
Читать ограниченные страницы с курсором по id и условием владельца.
Сохранить событие вместе с бронью и отделить его обработку от HTTP-ответа.
Согласовать схему маршрутов с моделями, заголовками и известными ошибками.