Ответ вслух Junior REST API и OpenAPI спрашивают часто обновлено

Что такое REST

Вопрос

Что такое REST и как ты проектируешь REST API?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

REST это архитектурный стиль Филдинга: клиент-сервер, сервер не хранит состояние сессии между запросами, ответы можно кешировать, единый интерфейс.

Что должно прозвучать в ответе

  • Архитектурный стиль: ресурсы, stateless, единый интерфейс, кеширование

  • Ресурсы существительными, методы задают действие

  • Статусы ответов и единый формат ошибок

  • Идемпотентность и безопасные повторы

  • Пагинация, фильтры, версионирование, OpenAPI

Что могут спросить следом

  • Чем PUT отличается от PATCH?
  • Как версионировать API?
  • Что такое HATEOAS и используют ли его?

Разбор

REST это архитектурный стиль Филдинга: клиент-сервер, сервер не хранит состояние сессии между запросами, ответы можно кешировать, единый интерфейс. На практике проектирую так: выделяю ресурсы, называю их существительными во множественном числе, действия выражаю методами: GET читает, POST создаёт, PUT заменяет, PATCH частично меняет, DELETE удаляет. Продумываю статусы: 201 на создание, 404, 409 на конфликт состояния, 422 на бизнес-валидацию, и единый формат ошибки. Для операций с деньгами закладываю ключ идемпотентности. Для списков пагинацию и фильтры. Всё описываю в OpenAPI до разработки, чтобы фронт и смежные команды начинали работу параллельно на моках.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.