6 вопросов
REST - архитектурный стиль для API: HTTP-методы, статусы ответов, stateless, идемпотентность, пагинация, версионирование. Основа большинства веб-сервисов и частая тема на собеседованиях.
REST (Representational State Transfer) - архитектурный стиль, а не протокол. Принципы: клиент-сервер, stateless, единообразный интерфейс, ресурсы идентифицируются URL. REST API обычно использует HTTP-методы (GET, POST, PUT, DELETE) и JSON.
Подробнее →PUT - полная замена ресурса (нужно передать все поля). PATCH - частичное обновление (только изменённые поля). PUT идемпотентен по определению. На практике многие API используют PATCH для обновлений.
Подробнее →4xx - ошибки клиента: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict, 422 Unprocessable Entity. 2xx - успех, 3xx - перенаправление, 5xx - ошибки сервера (500, 502, 503, 504).
Подробнее →Stateless означает, что сервер не хранит состояние клиента между запросами. Каждый запрос самодостаточен - содержит токен авторизации, параметры и всё необходимое. Это упрощает масштабирование - запрос может обработать любой сервер.
Подробнее →Версия в URL (/api/v1/) - самый простой и распространённый подход. Версия в заголовке Accept более правильная с точки зрения REST, но сложнее. На практике большинство API (GitHub, Stripe, Google) используют версию в URL.
Подробнее →Курсорная пагинация использует ID последнего элемента (cursor) вместо смещения. При offset-пагинации добавление записей сдвигает данные - пользователь видит дубликаты или пропускает записи. Cursor-based лишена этой проблемы.
Подробнее →