13 вопросов на собеседовании по REST API, которые вам нужно знать

Независимо от того, с каким языком программирования или технологией вы работаете, вы, вероятно, сталкивались с интерфейсом прикладного программирования REST (API). REST расшифровывается как Representational State Transfer, который сегодня является одним из наиболее широко используемых архитектурных стилей для веб-сервисов, микросервисов и API. API-интерфейсы, соответствующие архитектурному стилю REST, считаются API-интерфейсами REST.

Являетесь ли вы младшим или старшим разработчиком, на собеседовании вам могут задавать вопросы о REST API. Чтобы помочь вам пройти следующее собеседование, мы обсудим некоторые распространенные вопросы и ответы на собеседованиях по REST API.

Мы рассмотрим:

  • 13 вопросов на собеседовании по REST API, которые вам нужно знать
  • Подведение итогов и следующие шаги

13 вопросов на собеседовании по REST API, которые вам нужно знать

1. Что такое REST?

REST означает передачу репрезентативного состояния. REST — это архитектурный стиль для веб-разработки. Архитектура REST излагает рекомендации по передаче представлений ресурсов между клиентами и серверами в сети.

2. Что такое REST API?

REST API или RESTful API — это веб-API, соответствующий стилю архитектуры REST.

3. Опишите 5 ограничений архитектурного стиля REST и их преимущества.

Если они запрашивают 6 ограничений, см. следующий вопрос о необязательном ограничении.

Настоящий RESTful API должен соответствовать пяти архитектурным ограничениям REST:

Единый интерфейс:

  • Интерфейс между клиентом и сервером, обеспечивающий стандартизированное взаимодействие клиент-сервер на одном языке.
  • Необходимо для разделения клиента и сервера

Клиент-сервер:

  • Модель клиент-сервер для разделения задач между клиентом и сервером.
  • Позволяет клиенту и серверу работать и развиваться независимо
  • Поддерживает переносимость и масштабируемость

Без сохранения состояния:

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

Кэшируемый:

  • Серверы помечают свои ответы как кэшируемые или некэшируемые.
  • Клиенты и посредники могут кэшировать ответы сервера.
  • Сокращает взаимодействие клиент-сервер, поддерживает масштабируемость и производительность

Многоуровневая система:

  • Уровни между клиентом и сервером могут состоять из посредников, таких как прокси-серверы или балансировщики нагрузки.
  • Слои имеют отдельные обязанности, но могут взаимодействовать друг с другом
  • Поддерживает масштабируемость и безопасность системы

4. Каково дополнительное архитектурное ограничение REST?

Код по запросу — это необязательное ограничение архитектуры RESTful. Код по запросу позволяет серверу отправлять исполняемый код (скрипты или апплеты) клиенту по запросу клиента.

Преимущество: расширяет функциональность клиента, поскольку клиент может загружать функции после развертывания.

Недостаток: уменьшает видимость, поэтому считается необязательным.

Примеры: апплеты Java и JavaScript.

5. Объясните ограничения единого интерфейса.

Единый интерфейс необходим для отделения клиента от сервера.

Есть четыре необходимых ограничения для достижения единого интерфейса:

  • Идентификация ресурсов: запросы клиентов должны идентифицировать ресурсы с использованием унифицированных идентификаторов ресурсов (URI).
  • Манипулирование ресурсами через эти представления: когда клиенты получают представление ресурса с сервера, у них есть вся информация, необходимая для изменения состояния ресурса.
  • Самоописательные сообщения: сообщения содержат всю информацию, необходимую получателю для ее интерпретации, включая метаданные.
  • Гипермедиа как механизм состояния приложения: гипермедиа (например, HTML) — это среда для взаимодействия клиент-сервер, и клиенту не требуется документация по конкретному API для понимания ответов сервера.

6. Что такое CRUD?

CRUD — это аббревиатура четырех основных операций, используемых в системе управления реляционными базами данных (RDBMS).

Каждая операция в CRUD относится к методу HTTP, который поддерживает REST.

  • Создать: POST
  • Читать: GET
  • Обновление: PUT
  • Удалить: DELETE

7. Расскажите о методах HTTP-запросов, поддерживаемых REST, и о том, когда они используются.

REST API основаны на HTTP-запросах или командах, каждая из которых выполняет свою задачу.

REST поддерживает следующие HTTP-запросы:

  • Метод GET: запрос данных с сервера
  • Метод POST: отправьте данные для создания нового ресурса по указанному сервером URL-адресу.
  • Метод PUT: отправьте данные для обновления ресурса по указанному клиентом URL-адресу.
  • Метод DELETE: удалить ресурс с сервера
  • Метод OPTIONS: возвращать методы запроса, поддерживаемые службой.
  • Метод HEAD: возвращает метаинформацию, такую как заголовки ответа.
  • Метод PATCH: изменить часть ресурса на сервере

8. В чем разница между методами PUT и POST?

Этот вопрос может поставить некоторых разработчиков в тупик. Способность объяснить это поможет 

вам выделиться как человеку, который действительно знает, о чем говорит.

Вот различия между PUT и POST:

PUT:

  • Идемпотент (т. е. несколько запросов дадут один и тот же результат)
  • Ответы PUT не кэшируются
  • Обновляет или заменяет целевой ресурс полезной нагрузкой запроса

POST:

  • Не идемпотент (т. е. несколько запросов дадут несколько одинаковых ресурсов)
  • Ответы POST могут кэшироваться при условии правильного заголовка управления кешем.
  • Полезная нагрузка запроса обрабатывается веб-сервером на основе целевого ресурса.

Понимание идемпотентности: Примером идемпотентной операции может быть операция умножения числа на единицу. Независимо от того, сколько раз вы умножаете пять на один, вы получите тот же результат.

9. Объясните, что означает отсутствие состояния в REST.

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

Как следствие, будут применяться следующие условия:

  • Запрос клиента содержит всю информацию, необходимую серверу для обработки запроса.
  • Клиентское приложение отвечает за сохранение состояния сеанса.

10. Каковы преимущества и недостатки REST API?

Важно знать плюсы и минусы RESTful API.

Преимущества включают в себя:

  • Разработан для обеспечения высокой производительности, портативности, надежности и масштабируемости.
  • Разделение клиент-сервер позволяет каждому индивидуально работать и масштабироваться
  • Простота тестирования и адаптации к различным средам
  • Легко освоить, так как использует протокол HTTP.
  • Поддерживает различные технологии передачи данных, включая JSON, XML, YAML, изображения и многое другое.
  • Использует меньшую полосу пропускания, чем другие методы, такие как технология Simple Object Access Protocol (SOAP).

Недостатки включают:

  • Не применяет методы безопасности
  • Метод HTTP ограничивает вас синхронными запросами
  • Из-за отсутствия состояния вы не сможете поддерживать состояние (например, в сеансах).

11. В чем разница между AJAX и REST?

Различие может сбить с толку начинающих разработчиков, поэтому полезно знать разницу.

Клиент AJAX может сделать RESTful-запрос к REST API (например, запрос на получение), но AJAX не является архитектурным стилем. Это метод веб-разработки для клиентских приложений. Клиенты AJAX могут получить доступ к REST API, но они не реализованы с помощью AJAX.

12. В чем разница между SOAP и REST?

Хотя некоторые REST API используют протоколы SOAP, REST и SOAP — это совершенно разные подходы к созданию API. Интервьюеры могут задать этот вопрос, чтобы оценить глубину вашего понимания.

Вот некоторые различия между SOAP и REST.

SOAP:

  • Протокол
  • Формат данных ограничен XML
  • Тяжелый и требует большей пропускной способности
  • Вызовы не могут кэшироваться

REST:

  • Архитектурный стиль
  • Позволяет использовать различные форматы данных, включая обычный текст, HTML, XML, JSON и YAML.
  • Легкий и требует меньше пропускной способности
  • Вызовы могут кэшироваться

13. Объясните коды состояния ответа HTTP.

Коды ответов HTTP указывают на результат клиентских запросов.

Общие коды состояния HTTP включают:

  • 200: Успешный запрос
  • 201: Объект или объекты, созданные в результате успешного запроса. 
  • 400: Неверный запрос. Неверный запрос клиента.
  • 401: Неавторизованный. Пользователь не авторизован для доступа к ресурсу и может не пройти аутентификацию
  • 403: Запрещено. Пользователь не авторизован для доступа к ресурсу, пользователь аутентифицирован
  • 404 Не Найдено. Ресурс не найден внутренняя ошибка сервера 500. Общая ошибка сервера
  • 502 Неверный шлюз. Ответ вышестоящего сервера недействителен
  • 503 Сервис недоступен. Результат проблемы на стороне сервера, включая перегрузку или сбой системы

Подведение итогов и следующие шаги

Поздравляем! Теперь вы готовы ответить на некоторые распространенные вопросы и ответы на собеседования по REST API. Куда вы пойдете отсюда, зависит от ваших целей.

Чтобы подготовиться к собеседованию, ознакомьтесь с разделом Подготовка к собеседованию с Educative. Здесь вы найдете все наши ресурсы для подготовки к собеседованию в одном месте, от руководств и практических задач до советов от отраслевых экспертов.

Чтобы получить практические навыки работы с REST API, ознакомьтесь с одним из наших интерактивных курсов по REST API:

Приятного обучения!

Продолжить чтение об API и подготовке к собеседованию на Educative

Начать обсуждение

Какие вопросы интервью REST API вы практикуете? Было ли это руководство полезным? Дайте нам знать в комментариях ниже!