REST API

6 вопросов

REST - архитектурный стиль для API: HTTP-методы, статусы ответов, stateless, идемпотентность, пагинация, версионирование. Основа большинства веб-сервисов и частая тема на собеседованиях.

1 Что такое REST? 🟢 Лёгкий
Ответ: B) Архитектурный стиль для API на основе HTTP

REST (Representational State Transfer) - архитектурный стиль, а не протокол. Принципы: клиент-сервер, stateless, единообразный интерфейс, ресурсы идентифицируются URL. REST API обычно использует HTTP-методы (GET, POST, PUT, DELETE) и JSON.

Подробнее →
2 В чём разница между PUT и PATCH? 🟢 Лёгкий
Ответ: B) PUT заменяет ресурс целиком, PATCH - частично обновляет

PUT - полная замена ресурса (нужно передать все поля). PATCH - частичное обновление (только изменённые поля). PUT идемпотентен по определению. На практике многие API используют PATCH для обновлений.

Подробнее →
3 Что означают HTTP-статусы группы 4xx? 🟢 Лёгкий
Ответ: C) Ошибка клиента

4xx - ошибки клиента: 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict, 422 Unprocessable Entity. 2xx - успех, 3xx - перенаправление, 5xx - ошибки сервера (500, 502, 503, 504).

Подробнее →
4 Что означает stateless в контексте REST? 🟡 Средний
Ответ: B) Каждый запрос содержит всю информацию для обработки

Stateless означает, что сервер не хранит состояние клиента между запросами. Каждый запрос самодостаточен - содержит токен авторизации, параметры и всё необходимое. Это упрощает масштабирование - запрос может обработать любой сервер.

Подробнее →
5 Какой способ версионирования REST API наиболее распространён? 🟡 Средний
Ответ: A) Версия в URL (/api/v1/users)

Версия в URL (/api/v1/) - самый простой и распространённый подход. Версия в заголовке Accept более правильная с точки зрения REST, но сложнее. На практике большинство API (GitHub, Stripe, Google) используют версию в URL.

Подробнее →
6 Какой подход к пагинации надёжнее при частом добавлении записей? 🔴 Сложный
Ответ: B) Курсорная пагинация (cursor-based)

Курсорная пагинация использует ID последнего элемента (cursor) вместо смещения. При offset-пагинации добавление записей сдвигает данные - пользователь видит дубликаты или пропускает записи. Cursor-based лишена этой проблемы.

Подробнее →
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.