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

Когда фронтенду нужен REST, GraphQL или WebSocket?

MiddleАрхитектура фронтенда
Ещё спрашивают так:
  • Чем GraphQL лучше REST?
  • Когда нужен WebSocket?
Коротко

REST — ресурсы и HTTP-методы: просто, кэшируется HTTP, хватает для большинства приложений. GraphQL — клиент сам описывает нужные поля одним запросом: удобно при множестве экранов с разными данными и нескольких клиентах, но сложнее кэширование и защита от тяжёлых запросов. WebSocket — постоянное двустороннее соединение для чатов, совместного редактирования, игр. SSE — односторонний поток от сервера (уведомления, ответы LLM) поверх HTTP.

  • Опрос (polling) — простой вариант для редких обновлений
  • У WebSocket нужно продумать переподключение и пропущенные сообщения
  • GraphQL не отменяет авторизацию на уровне полей

Подробно

Выбор по характеру данных: запрос-ответ — REST или GraphQL; сервер сообщает о событиях — SSE; обе стороны часто шлют сообщения — WebSocket.

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

  • Сильные стороны каждого подхода.
  • Критерии выбора.
  • Переподключение и кэширование.

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

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

Показать варианты и ответ
  • ✗WebSocket всегда лучше REST, его стоит использовать везде
  • ✗SSE позволяет клиенту и серверу обмениваться сообщениями в обе стороны, как WebSocket
  • ✗GraphQL автоматически решает авторизацию
  • ✓REST — запрос-ответ с кэшем, GraphQL — выбор полей, WebSocket — двусторонний, SSE — от сервера

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

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

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

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

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