Этап 4 из 15 · ≈ 6 ч

Проектирование REST API

Основа с Junior

Ресурсы, методы, коды ответа, пагинация, идемпотентность, версии и совместимость.

Что важно знать

  • Ресурсы — существительные (/orders/42), действия — методами.
  • Коды: 201 при создании, 204 без тела, 400/422 — ошибки данных, 401/403, 404, 409 — конфликт, 429 — лимит.
  • Идемпотентность: повтор PUT и DELETE безопасен, для POST — ключ идемпотентности.
  • Пагинация: курсор вместо offset на больших таблицах.
  • Ошибки в едином формате (RFC 9457 Problem Details).
  • Совместимость: добавлять поля можно, удалять и менять смысл — только с новой версией.
  • Контракт в OpenAPI — генерация клиентов и документации.

Критерии освоения

Junior ≈ 6 ч

  • Проектирует ресурсы и эндпоинты с правильными методами и кодами ответа
  • Описывает API в OpenAPI

Практика. Спроектировать и реализовать API заказов (создание, список, получение, отмена) с описанием в OpenAPI.

Middle ≈ 8 ч

  • Делает пагинацию курсором, фильтрацию и единый формат ошибок
  • Обеспечивает идемпотентность создания через ключ идемпотентности
  • Отличает совместимые изменения API от ломающих

Практика. Добавить в API пагинацию курсором, ключ идемпотентности для создания заказа и единый формат ошибок.

Senior ≈ 4 ч

  • Выстраивает версионирование и политику изменений публичного API для внешних клиентов

Практика. Описать политику версионирования и депрекации API для партнёров и провести изменение без поломки клиентов.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Добавь эндпоинт GET /users/{id}, возвращающий User по идентификатору.Junior

@RestController с @GetMapping("/users/{id}") и @PathVariable; сервис возвращает Optional → 200 с DTO или 404; наружу отдавать DTO, а не сущность JPA.

Полный разбор
Как в Spring Boot 3 возвращать ошибки REST API в едином формате?Middle

@RestControllerAdvice с @ExceptionHandler централизует обработку, а ответ — ProblemDetail (стандарт RFC 9457, application/problem+json): type, title, status, detail, instance и свои поля.

Полный разбор
Что означает код ответа 404?Junior

404 Not Found — ресурса по этому адресу нет. Это группа 4xx — ошибка на стороне клиента; 5xx — ошибка сервера.

Полный разбор
Чем REST отличается от SOAP?Middle

REST — архитектурный стиль поверх HTTP: ресурсы, методы, обычно JSON, кэширование, простота. SOAP — протокол обмена XML-сообщениями со строгим контрактом WSDL, стандартами безопасности и транзакций (WS-).

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

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

Полный разбор
Что произойдёт при создании ресурса через POST, если контроллер возвращает ResponseEntity со статусом 201?Middle

201 Created сопровождают заголовком Location с адресом созданного ресурса; тело — созданный ресурс или пусто. Spring сам Location не проставляет.

Полный разбор
Какие HTTP-методы вы знаете? Чем GET отличается от POST?Junior

GET — получить данные, POST — создать или отправить, PUT — заменить целиком, PATCH — изменить частично, DELETE — удалить.

Полный разбор
Какие коды ответа HTTP вы знаете?Junior

Пять групп: 1xx информационные, 2xx успех, 3xx перенаправление, 4xx ошибка клиента, 5xx ошибка сервера.

Полный разбор
Как тестировать REST API?Junior

API тестируют без интерфейса: отправляем запросы (Postman, curl) и проверяем статус, тело ответа, схему данных, побочные эффекты и обработку ошибок.

Полный разбор

Разборы темы

← Вся карта «Backend-разработчик»

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

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

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

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