Содержание[Скрывать][Показывать]
- 1. Что вы понимаете под REST?
- 2. Что вы подразумеваете под REST API?
- 3. Что такое URI?
- 4. Каковы характеристики веб-служб RESTful?
- 5. Каковы руководящие принципы REST?
- 6. Укажите методы HTTP, которые поддерживает REST.
- 7. Опишите ограничения, налагаемые согласованным интерфейсом.
- 8. Что такое ресурс REST?
- 9. Что для вас значит JAX-RS?
- 10. Что отличает AJAX и REST друг от друга?
- 11. Можете ли вы перечислить некоторые недостатки веб-сервисов RESTful?
- 12. Что отличает методы PUT и POST друг от друга?
- 13. Как вы тестируете веб-сервисы RESTful?
- 14. Опишите REST API в реальном мире.
- 15. Как работает микросервисная архитектура?
- 16. Что такое кэширование?
- 17. Опишите полезную нагрузку.
- 18. Чем отличается SOAP от REST?
- 19. Можно ли использовать протокол безопасности транспортного уровня (TLS) с REST?
- 20. Идемпотентные методы: что это такое? Как это применимо к миру веб-сервисов RESTful?
- 21. Какова функциональность базовой HTTP-аутентификации?
- 22. Считаете ли вы GraphQL лучшим выбором для создания микросервисной архитектуры?
- 23. Каковы основные различия между безопасным и идемпотентным методами HTTP?
- 24. Что подразумевает JAX-RS API под классами корневых ресурсов RESTful?
- 25. Что такое Postman и почему он используется?
- 26. Как обеспечивается безопасность REST API?
- Заключение
Эволюция REST сделала API невероятно доступными, а также раскрыла всю их силу и потенциал. REST API легко создавать и кэшировать благодаря их ресурсо-ориентированной архитектуре.
Кроме того, с течением времени API RESTful были предшественниками других важных разработок, таких как облачные вычисления и проектирование на основе микросервисов.
Поэтому неудивительно, что разработчики REST API сегодня востребованы, учитывая то, как они обеспечивают предприятиям, использующим службы RESTful, конкурентное преимущество. REST API — популярная тенденция в дизайне.
Многим ИТ-фирмам нужны знания REST API от разработчики программного обеспечения и спросите об этом на технических интервью.
Вот некоторые из наиболее типичных вопросов для собеседования по REST API, которые помогут вам подготовиться к собеседованию в различных фирмах, если вы хотите работать в сфере разработки REST API.
1. Что вы понимаете под REST?
REST — это архитектурная парадигма для разработки веб-приложений, основанных на протоколе передачи гипертекста (HTTP).
REST определяет определенные стандарты, которым веб-сервисы должны соответствовать, чтобы считаться RESTful. Эти рекомендации гарантируют быструю и эффективную передачу запросов и ресурсов между клиентом и сервером с использованием стандартизированных протоколов HTTP.
2. Что вы подразумеваете под REST API?
Связь между программами, известная как интерфейс прикладного программирования, обеспечивает связь и обмен данными между независимыми программами. Например, новостной веб-сайт может использовать Twitter API для автоматического обнаружения соответствующих твитов и интеграции их в новостные сюжеты.
API, который придерживается принципов REST, известен как REST API, иногда называемый RESTful API. В REST API каждый фрагмент данных обрабатывается как ресурс и получает отдельный стандартный идентификатор ресурса (URI).
Например, API Twitter превращает каждый твит в извлекаемый ресурс, доступный для клиентов. API Twitter может использоваться пользователями для публикации твитов и выполнения других задач веб-сайта.
3. Что такое URI?
A компьютерные сети на ресурс можно ссылаться с помощью URI или универсального идентификатора ресурса. Он служит средством отделения одного ресурса от другого. Источники могут быть, а могут и не быть в сети.
Благодаря своей стандартной структуре URI упрощают подключение даже к различным типам ресурсов. Расположение или имя ресурса включается в URI вместе со строкой символов.
URI состоит из пути, схемы, запроса и других элементов, но не включает протокол.
Используя протокол, URL-адреса (унифицированные локаторы ресурсов) используются для поиска ресурсов в Интернете или доступных через него.
4. Каковы характеристики веб-служб RESTful?
- Парадигма клиент-сервер является основой сервиса.
- Служба может получить доступ к ресурсам с помощью URI.
- Служба использует протокол HTTP для получения данных/ресурсов, выполнения запросов и выполнения других задач.
- Обмен сообщениями — это название метода, используемого для связи между клиентом и сервером.
- Эти службы также могут реализовывать архитектурный шаблон REST с использованием служб SOAP.
- Чтобы сократить количество обращений к серверу для однотипных повторяющихся запросов, эти службы также используют идею кэширования.
5. Каковы руководящие принципы REST?
REST API должны соответствовать пяти критериям:
Разделение клиент-сервер: для связи между клиентом и сервером может использоваться только серия запросов и ответов. Только клиенты и серверы могут отправлять запросы и ответы соответственно. Эта простая идея позволяет обеим сторонам действовать независимо друг от друга.
Единый интерфейс: Должен быть единый протокол для всех соединений клиент-сервер. Этот протокол для REST — HTTP. Поскольку каждое приложение запрашивает и отправляет данные, используя один и тот же язык, единый интерфейс упрощает интеграцию.
Без сохранения состояния: сервер не сохраняет никаких записей о предыдущих запросах или ответах в связи без сохранения состояния. В каждом запросе и ответе содержится вся информация, необходимая для завершения обмена. Связь без сохранения состояния повышает скорость, экономит память и снижает нагрузку на сервер. Кроме того, это позволяет избежать возможного сбоя запроса из-за неполных данных.
Многоуровневая система. Серверы, расположенные между клиентом и сервером API, называются уровнями. Эти дополнительные серверы выполняют множество функций, таких как обнаружение спама и оптимизация скорости. Слои в REST являются модульными, то есть их можно добавлять и удалять, не влияя на связь между клиентом и сервером API.
Кэшируемый: клиенты могут кэшировать любые ресурсы для повышения скорости, если ответы сервера указывают, является ли ресурс кэшируемым.
Кодирование по запросу: в ответ API может передавать исполняемый компьютерный код клиентам. Затем клиентское приложение может запустить код на своей собственной серверной части.
6. Укажите методы HTTP, которые поддерживает REST.
Методы HTTP, которые поддерживает REST:
- GET: этот метод запрашивает ресурс по указанному URL-адресу. Тело запроса не должно быть включено, потому что оно будет проигнорировано. Можно кэшировать его локально или на сервере.
- POST: этот метод отправляет данные в службу для обработки, и служба обычно должна возвращать новый или измененный ресурс.
- PUT: ресурс обновляется по URL-адресу запроса.
- УДАЛИТЬ: Ресурс удаляется по URL-адресу запроса.
- Опции: определяет поддерживаемые методы.
- HEAD: возвращаются метаданные URL-адреса запроса.
7. Опишите ограничения, налагаемые согласованным интерфейсом.
Чтобы отделить клиента от сервера, требуется согласованный интерфейс.
Для достижения согласованного интерфейса необходимы следующие четыре ограничения:
- Идентификация ресурсов: клиентские запросы должны использовать стандартные идентификаторы ресурсов для идентификации ресурсов (URI).
- Манипулирование ресурсами с использованием этих представлений: у клиентов есть вся информация, необходимая для изменения состояния ресурса, когда они получают представление ресурса с сервера.
- Самоописательные сообщения: сообщения включают в себя все метаданные и другую информацию, необходимую получателю для их понимания.
- Гипермедиа как механизм состояния приложения. Каналом для связи клиент-сервер является гипермедиа, например HTML, и клиентам не нужна документация по конкретному API, чтобы понять ответы сервера.
8. Что такое ресурс REST?
Ресурсы — это основные компоненты веб-службы RESTful в архитектуре REST. Они включают всю важную информацию, к которой должен получить доступ клиент API.
К любому типу ресурсов, например HTML-странице, изображению, видео или чему-либо еще, необходимому для действия API, можно получить доступ через сервер в системе клиент-сервер.
Ресурсы идентифицируются унифицированным идентификатором ресурса. Текст, JSON или XML — все это приемлемые представления ресурсов. При этом ограничений на формат представления нет.
9. Что для вас значит JAX-RS?
Веб-службы RESTful проще создавать на Java благодаря Java API для веб-служб RESTful, часто известному как JAX-RS. Разработчики могут описывать ресурсы и операции, которые можно с ними выполнять, используя предоставленные аннотации.
10. Что отличает AJAX и REST друг от друга?
Ajax:
- Ajax — это группа технологий, которая позволяет динамически обновлять интерфейс пользователя элементы без перезагрузки страницы.
- Ajax устраняет асинхронную связь между клиентом и сервером.
ОТДЫХАТЬ:
- REST требует связи между сервером и клиентом.
- Использование ресурсов важно для структуры URL и шаблона запроса/ответа, используемого REST.
11. Можете ли вы перечислить некоторые недостатки веб-сервисов RESTful?
Сессии не могут поддерживаться, поскольку службы придерживаются понятия безгражданства. (Клиент отвечает за передачу идентификатора сеанса во время моделирования сеанса.)
Ограничения безопасности не являются фундаментальными для REST. Использующие его протоколы наследуют меры безопасности. Поэтому важно соблюдать осторожность при принятии мер безопасности, таких как интеграция аутентификации на основе SSL/TLS.
12. Что отличает методы PUT и POST друг от друга?
ПОЛОЖИЛ:
- Нет кеша для ответов PUT.
- Идемпотент (т. е. несколько запросов дадут один и тот же результат)
- полезная нагрузка запроса обновляет или заменяет целевой ресурс.
ПОСЛЕ:
- idempotent not (т. е. несколько запросов дадут несколько одинаковых ресурсов)
- Веб-сервер обрабатывает полезную нагрузку запроса на основе предполагаемого ресурса.
- Если включен соответствующий заголовок управления кэшем, ответы POST могут кэшироваться.
13. Как вы тестируете веб-сервисы RESTful?
Тестированию веб-сервисов RESTful может помочь ряд инструментов, включая Swagger и Postman. Проверка параметров запроса, таких как параметры запроса, заголовки и заголовки ответов, стала возможной благодаря обилию функций последнего.
Postman можно использовать для выполнения запросов к конечным точкам и отображения результатов. Из этих ответов можно создать XML и JSON.
Postman и Swagger обеспечивают чрезвычайно сопоставимые функциональные возможности. С другой стороны, Swagger также предлагает такие возможности, как документирование конечной точки.
14. Опишите REST API в реальном мире.
- Веб-сайты, посвященные путешествиям и продаже билетов, могут использовать расписание рейсов и цены, которые авиакомпании предоставляют через API.
- Чтобы картографические и навигационные приложения (например, Google Maps) могли их использовать, агентства общественного транспорта часто делают свои данные общедоступными в режиме реального времени через API.
- Погодные приложения используют открытые API, которые обмениваются данными о погоде для отображения информации о погоде.
- Разработчики могут получить доступ к картографическим данным Google Maps через ряд размещенных API. Эти API используются разработчиками для встраивания динамических карт в свои приложения и веб-сайты.
15. Как работает микросервисная архитектура?
- Запросы отправляются разными клиентами с разных устройств.
- После подтверждения удостоверений клиентов поставщики удостоверений предоставляют маркеры безопасности.
- Клиентские запросы обрабатываются шлюзом API.
- Весь материал системы сохраняется как статическое содержимое.
- Инструмент управления проверяет баланс сервисов на узлах и наличие сбоев.
- Обнаружение путей связи между микрослужбами помогает обнаружение служб.
- Центры обработки данных и прокси-серверы образуют рассредоточенные сетевые системы, называемые сетями доставки контента.
- Удаленные сервисы обеспечивают доступ к информации на расстоянии.
16. Что такое кэширование?
Практика временного хранения копии ответа сервера где-то (например, в памяти компьютера) для более быстрого доступа к нему позже называется кэшированием.
Кэширование увеличивает скорость сервера при использовании REST API за счет уменьшения объема работы, которую сервер должен выполнить для удовлетворения запроса. Приложения, использующие API, работают быстрее благодаря кэшированию, поскольку им не нужно отправлять новый запрос каждый раз, когда им нужен ресурс.
Поле Cache-Control заголовка HTTP-ответа содержит информацию о том, как долго ресурс может кэшироваться клиентом, прежде чем к нему снова потребуется доступ.
17. Опишите полезную нагрузку.
Полезная нагрузка в REST относится к информации, содержащейся в теле ответа HTTP. Клиент использовал метод GET для запроса данных.
Документ, содержащий текст твита и любые необходимые файлы для размещения твита на веб-сайте, будет включен в полезную нагрузку, например, если вы запросите API Twitter для определенного твита. Кроме того, полезная нагрузка может быть включена в HTTP-запрос с использованием метода POST.
18. Дифференцируйте МЫЛО против ОТДЫХА?
- В отличие от SOAP, который может обрабатывать только XML, REST поддерживает более широкий диапазон форматов ресурсов, включая XML, текст, HTML, изображения, видео и т. д.
- Когда безопасность имеет решающее значение для онлайн-приложений, SOAP полезен. REST нельзя использовать, когда транзакции должны выполняться безопасно, поскольку он не особенно безопасен.
- Поскольку SOAP — это всего лишь протокол, REST может использовать его в своих веб-сервисах, но не наоборот.
- В то время как REST — это всего лишь архитектурный шаблон, используемый для разработки веб-сервисов и соблюдающий определенные ограничения, такие как настройка клиент-сервер, безгражданство, кешируемый ответ, многоуровневые системы и согласованный интерфейс, SOAP — это протокол, который работает на определенных стандартах, которые должны строго соблюдаться. к.
- В то время как REST использует универсальные идентификаторы ресурсов (URI), SOAP использует сервисные интерфейсы для предоставления своих возможностей клиентским приложениям. REST требует меньше пропускной способности, чем SOAP, поскольку сообщения SOAP содержат больше информации.
19. Можно ли использовать протокол безопасности транспортного уровня (TLS) с REST?
На самом деле, мы можем. Связь клиента REST и сервера шифруется с помощью TLS, и этот протокол также дает клиентам возможность аутентифицировать серверы.
Поскольку он является заменой Secure Socket Layer, он используется для безопасной связи (SSL). Реализация веб-служб RESTful успешно реализуется с помощью HTTPS, поскольку он эффективно взаимодействует как с TLS, так и с SSL.
REST наследует характеристики протокола, который он реализует, что здесь следует отметить. В результате средства защиты зависят от протокола, который использует REST.
20. Идемпотентные методы: что это такое? Как это применимо к миру веб-сервисов RESTful?
Когда URI один и тот же, некоторые HTTP-методы в запросе оказывают одинаковое влияние на сервер независимо от того, доставляются ли они один раз или несколько раз. Идемпотентные методы - это то, что они известны как.
Например, независимо от того, сколько раз выполняется URI с использованием метода GET, сервер всегда будет получать один и тот же результат. К идемпотентным методам относятся GET, PUT и PATCH, и это лишь некоторые из них.
Идемпотентные HTTP-методы — это некоторые из тех, которые используются RESTful. веб-приложений. Они необходимы для обеспечения согласованности действий веб-сервисов RESTful.
Клиенты, использующие REST API, могут допускать ошибки кода, из-за которых REST API выполняет случайно повторяющиеся запросы. Эти вызовы могут привести к неправильному использованию ресурсов.
21. Какова функциональность базовой HTTP-аутентификации?
При использовании базовой аутентификации как части API пользователь должен указать имя пользователя и пароль, которые браузер объединяет в форме «имя пользователя: пароль» в кодировке base64.
При каждом HTTP-запросе от браузера закодированное значение доставляется как значение для заголовка «Авторизация». Поскольку учетные данные просто закодированы, рекомендуется использовать эту форму при отправке HTTPS-запросов, поскольку они не являются безопасными и могут быть перехвачены кем угодно, если не используются протоколы безопасности.
22. Считаете ли вы GraphQL лучшим выбором для создания микросервисной архитектуры?
Микросервисы и GraphQL прекрасно сочетаются друг с другом, потому что GraphQL держит вашу микросервисную архитектуру в секрете от ваших клиентов.
С внешней стороны вы хотите, чтобы все ваши данные поступали из одного API, а с задней части вы хотите разделить их на микросервисы. Лучший из известных мне способов достижения обеих целей — это использование GraphQL.
Это позволяет разделить серверную часть на микрослужбы, при этом предоставляя каждому приложению единый API и позволяя объединять данные из различных служб.
23. Каковы основные различия между безопасным и идемпотентным методами HTTP?
Идемпотентные методы дают один и тот же результат при вызове один или несколько раз по одному и тому же запросу. Метод PUT является идемпотентным.
Все безопасные способы идемпотентны, но не все идемпотентные методы безопасны, поскольку безопасные методы не изменяют ресурсы. Например, GET безопасен, поскольку он просто извлекает данные и не изменяет ресурс.
Кроме того, он идемпотентный, что означает, что при вызове он всегда будет возвращать один и тот же ответ.
24. Что подразумевает JAX-RS API под классами корневых ресурсов RESTful?
Java Enterprise Edition предоставляет классы и интерфейсы, соответствующие требованиям JAX-RS API. С помощью JAX-RS создание веб-сервисов Java в архитектурном стиле REST упрощается.
В JAX-RS API классы корневых ресурсов — это просто «простые старые объекты Java» или POJO. Чтобы реализовать необходимые веб-ресурсы, они используют аннотации JAX-RS.
У них либо есть аннотации @path, либо хотя бы один из их методов имеет аннотации @path. Их можно охарактеризовать как классы Java с методами работы с конечными точками API.
25. Что такое Postman и почему он используется?
Инструмент разработки API под названием Postman используется для создания, тестирования и изменения API. Этот инструмент может использоваться разработчиками для любых функций, которые им требуются для API. Это упрощает и облегчает работу разработчиков.
Postman позволяет легко создавать различные HTTP-запросы, включая GET, POST, PUT и PATCH, сохранять среды для последующего использования и преобразовывать API в код на разных языках.
С Postman упрощается каждый этап цикла API, а сотрудничество упрощается для более быстрой разработки API.
Кроме того, он позволяет разработчикам управлять документацией, спецификациями, тестовыми примерами, процессами и каталогами API.
26. Как обеспечивается безопасность REST API?
Поскольку API-интерфейсы REST не используют такие строгие меры безопасности, как API-интерфейсы SOAP, конфиденциальные данные не должны отправляться или извлекаться с их помощью.
Однако заслуживающие доверия API-интерфейсы REST продолжают интегрировать элементы управления безопасностью для безопасной и надежной передачи данных.
- Аутентификация и авторизация: каждый запрос к API должен пройти эти две проверки. Проверка личности клиента посредством аутентификации и проверка наличия у него полномочий для доступа к запрошенным ресурсам посредством авторизации — это два разных процесса.
- Проверка: перед тем, как API предоставит доступ к своим ресурсам, запросы должны быть проверены на наличие возможного вредоносного кода после аутентификации и авторизации. Таким образом, сервер будет открыт для атаки путем внедрения.
- Проверка: перед тем, как API предоставит доступ к своим ресурсам, запросы должны быть проверены на наличие возможного вредоносного кода после аутентификации и авторизации. Таким образом, сервер будет открыт для атаки путем внедрения.
- Шифрование: Шифрование TLS/SSL защищает соединение между клиентом и сервером и не позволяет хакерам перехватывать запросы и ответы.
- Методы ограничения скорости, такие как лимиты и регулирование, защищают серверы от атак методом грубой силы, таких как DDoS, которые направлены на их деградацию или сбой.
- Отсутствие конфиденциальной информации в URI: URI ресурсов не должны содержать никаких защищенных данных (таких как имя пользователя, пароль или токен проверки подлинности).
Заключение
Поздравляем! Несколько простых и сложных вопросов для собеседования по REST API и соответствующие решения теперь у вас под рукой.
Теперь, когда у вас есть хорошее представление о том, как отвечать на некоторые типичные вопросы интервью REST API, вы можете перейти к ответам на интервью. Следующий шаг зависит от ваших целей.
Войти Серия интервью с Хашдорком для подготовки к интервью.
Оставьте комментарий