Вопрос с собеседования · System design

Что означает буква R в аббревиатуре REST применительно к проектированию API?

JuniorПроектирование API
Ещё спрашивают так:
  • Что такое REST?
  • Как правильно называть эндпоинты?
Коротко

REST — Representational State Transfer: ресурсы адресуются URL, действия выражаются методами HTTP, клиент работает с представлениями ресурсов.

  • В пути — существительные: GET /orders/42, а не GET /getOrder?id=42
  • Семантика методов: GET не меняет состояние, PUT и DELETE идемпотентны
  • Коды ответа и заголовки кэширования несут смысл

А ещё Без сохранения состояния между запросами (stateless)

Подробно

Практическое следствие простое: в адресе стоит существительное-ресурс, а действие задаёт метод. Поэтому GET /orders/42 корректен, а GET /getOrder?id=42 — нет: глагол продублирован в пути. Из того же принципа вытекает и семантика: GET не должен менять состояние, а повторный PUT или DELETE безопасен.

Что хотят услышать

  • Ресурсы и методы HTTP.
  • Пример правильного и неправильного URL.
  • Семантика методов и stateless.

Частые ошибки

  • Ставить глаголы в путь ресурса.
  • Менять состояние в обработчике GET.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Remote — все вызовы идут по сети между разными машинами
  • ✗Relational — данные обязаны храниться в реляционной базе
  • ✓Representational — клиент работает с представлениями ресурсов по URL
  • ✗Realtime — ответ должен приходить мгновенно

Что спросят дальше

  • Какие методы HTTP идемпотентны?
  • Как обозначить создание ресурса в ответе?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования