HTTP API и серверные основы — страница 2
Контракты запросов, проверка данных, коды ошибок, пагинация, файлы, cookies, авторизация, права, платежи и фоновые очереди.
Материалы
- Запросы с cookies и CSRF
Защищаем cookie-операции связанной с сессией CSRF-проверкой и точным Origin, отдельно от CORS.
- Контракт загрузки файлов
Проектируем узкую загрузку UTF-8 файла с ограничением размера, правами, staging и повторяемым результатом.
- Частичная передача ресурса
Разбираем Range, If-Range и границы частичного ответа на точном файле из двенадцати байтов.
- Перенаправления HTTP
Выбираем 301, 302, 303, 307 и 308 с учётом метода, Location, credentials и повторяемости операции.
- Ограничение частоты запросов
Задаём прикладной бюджет запросов, 429, Retry-After и безопасное ожидание перед ограниченным повтором.
- Асинхронная операция API
Разделяем 202, состояние фонового экспорта, его результат, срок хранения и повтор принятия задания.
- Контракт доставки вебхука
Проектируем подписанное уведомление с долговечным принятием, повтором, дедупликацией и обработкой нарушенного порядка.
- Описание контракта OpenAPI
Создаём ограниченный цельный документ OpenAPI для чтения и условного изменения одного курса.
- Совместимое изменение API
Разбираем совместимость полей, смыслов, URL, enum, курсоров и повторов при развитии API.
- Разбор API перед выпуском
Сводим методы, представления, права, повторяемость и состояния в единый редакционный разбор API.
- HTTP и проектирование API
32 урока о договоре клиента и сервера: сообщения, JSON, ошибки, повторяемость, пагинация, условия записи, сессии, CORS, файлы, фоновые операции и вебхуки.
- Запрос и ответ FastAPI: каталог кабинетов
Различать адрес ресурса, HTTP-операцию и JSON-ответ проекта «Окно».
- Ошибки API и граница неверного ввода
Возвращать различимые ошибки маршрута, схемы и предметной операции.
- Фильтр и постраничный список своих броней
Читать ограниченные страницы с курсором по id и условием владельца.
- OpenAPI как описание договора «Окна»
Согласовать схему маршрутов с моделями, заголовками и известными ошибками.
- Закрытый файловый архив: загрузки, S3 и обработка изображений
Двенадцать последовательных уроков на одном примере «Архив».
- Модель закрытого файлового архива
Разделить карточку, байты и состояния файла.
- Политика размера и типа файла
Проверить заявку по размеру, имени и допустимым типам.
- Владелец файла и авторизация запросов
Привязать каждую операцию к аутентифицированному владельцу.
- Закрытое S3-совместимое хранилище
Подключить закрытый бакет с обязательным versioning.
- Разрешение на прямую загрузку
Создать ограниченный presigned POST и зарезервировать квоту.
- Подтверждение загруженной версии
Зафиксировать versionId, длину и задачу обработки атомарно.
- Временная ссылка на скачивание
Выдать GET только на готовую версию своего файла.
- Безопасные производные изображения
Декодировать и перекодировать JPEG/PNG/WebP в безопасный WebP.