Что означает буква R в аббревиатуре REST применительно к проектированию 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 идемпотентны?
- Как обозначить создание ресурса в ответе?
Разбор темы
- HTTP и HTTPS — методы, коды ответа, версии
Методы и идемпотентность, группы кодов ответа, REST, отличия HTTP/1.1, HTTP/2 и HTTP/3, как HTTPS защищает соединение.
- Проектирование API: REST, gRPC и события
Выбор стиля взаимодействия, семантика и идемпотентность HTTP, формат ошибок, курсорная пагинация против offset, версионирование и обратная совместимость, контрактное тестирование.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.