API означает интерфейс прикладного программирования. Он служит шлюзом для доступа приложений к некоторым ресурсам из других приложений.

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

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

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

С учетом сказанного давайте рассмотрим некоторые из наиболее часто задаваемых вопросов о REST API.

Оглавление

Что такое ОТДЫХ?

Ответ: REST — это архитектурный проект, который определяет некоторые ограничения на работу API. API, которые следуют принципам REST, известны как RESTful API. REST означает передачу репрезентативного состояния.

Это не протокол или стандарт; вместо этого это архитектура, которую можно использовать для реализации API различными способами.

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

  • Разделение клиента и сервера: в RESTful API клиент не должен влиять на сервер каким-либо иным образом, кроме запроса данных через URI (унифицированный идентификатор ресурса). Точно так же сервер не должен каким-либо образом изменять содержимое клиента.
  • Безгражданство: когда делаются два отдельных запроса, они не знают друг о друге. Другими словами, запросы не имеют состояния и не поддерживают состояние. Если запрос выполнен, он просто завершается. Каждый запрос изолирован от других запросов.
  • Многоуровневая архитектура: клиент или сервер не знают, выполняется ли запрос непосредственно к источнику или промежуточному приложению. Их волнует только ответ на запрос.
  • Кэширование: данные или ответы можно кэшировать как на стороне клиента, так и на стороне сервера для повышения производительности и масштабируемости. Если есть частые запросы к определенному ресурсу, то ответ на этот запрос можно кэшировать и использовать при необходимости.

Каковы некоторые ключевые характеристики REST?

Ответ. Ключевые характеристики или особенности REST:

  • Гибкость: вы можете переходить с одного сервера на другой, и это ничего не изменит, потому что API будет отправлять один и тот же ответ на конкретный запрос. Кроме того, вы можете добавить столько конечных точек, сколько хотите для разных типов данных.
  • Масштабируемость. Кэширование повышает масштабируемость благодаря сохранению ответов для последующего использования. Это снижает нагрузку на сервер, а также уменьшает задержку.
  • Авторизация: с помощью заголовка авторизации вы можете указать учетные данные, которые сервер может использовать для авторизации запроса.
  • Отсутствие состояния: это самая важная функция REST, поскольку она не позволяет запросам знать, что происходит с другими запросами. Запросы изолируются и прекращаются, как только они выполняются.

Что такое ресурсы в архитектуре REST?

Ответ. Ресурсы — это объекты, над которыми выполняются различные операции, такие как извлечение, обновление или удаление. Они являются основными строительными блоками архитектуры REST.

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

Упомяните некоторые преимущества и недостатки REST API.

Ответ: Преимущества REST API заключаются в следующем:

  • Это просто реализовать.
  • Ресурсы могут быть легко обработаны.
  • Он масштабируется благодаря клиент-серверной архитектуре.
  • Поддерживает несколько типов носителей для передачи данных, таких как XML и JSON.

Его недостатки:

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

Определить шаблон REST.

Ответ. Шаблон REST — это утилита или клиент, с помощью которого вы можете получить доступ к REST API в среде Spring. По сути, он скрывает шаблонный код, который вам, возможно, придется написать, чтобы запросить ресурс из REST API.

Что такое RESTful?

Ответ: RESTful API или службы — это интерфейсы, которые реализуют архитектурный стиль REST (Representational State Transfer) и работают с использованием таких протоколов, как HTTP.

Что такое веб-сервисы RESTful?

Ответ. Веб-службы RESTful созданы для лучшей работы в Интернете. Передача репрезентативного состояния (REST) ​​— это архитектурный стиль, который определяет ограничения, такие как унифицированный интерфейс, многоуровневая архитектура и безгражданство, если они применяются к веб-службе, вызывают желаемые свойства, такие как производительность и масштабируемость, которые позволяют службам работать лучше всего на паутина.

Как вы можете протестировать веб-сервисы RESTful?

Ответ. Чтобы протестировать веб-службу RESTful, вы можете использовать клиент REST, такой как Postman или Thunder Client, и запросить веб-службу, которую хотите протестировать. Затем, когда вы получите ответ, поймите ответ; это ключевая часть.

Если вы хотите протестировать сложный API со многими конечными точками, вам, возможно, придется разделить тестирование и выполнить модульное тестирование, интеграционное тестирование, тестирование производительности и сквозное тестирование.

Упомяните некоторые особенности веб-служб RESTful.

Ответ. Некоторые из ключевых особенностей веб-сервисов RESTful:

  • Поддержка нескольких типов мультимедиа, таких как JSON и XML.
  • Масштабируемость
  • Изоляция клиента и сервера
  • Гибкость

Определите классы корневых ресурсов RESTful.

Ответ. Классы корневых ресурсов — это «простые старые объекты Java» (POJO), которые либо аннотируются с помощью @Path, либо имеют по крайней мере один метод с аннотацией @Path или указателем метода запроса, например @GET, @POST, @PUT или @УДАЛИТЬ.

Что такое УРИ?

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

Что такое безгражданство в REST?

Ответ: Безгражданство относится к одному ограничению, применяемому к API, в котором любые два запроса не могут знать, что происходит друг с другом. Другими словами, состояние запросов не сохраняется. Если запрос выполнен, он просто завершается после получения ответа.

Что такое JAX-RS?

Ответ: JAX-RS — это Java API, который позволяет разрабатывать приложения на Java, использующие архитектуру REST. Этот API упрощает разработку приложений REST на Java.

Каковы ключевые аннотации в JAX-RS API?

Ответ: Аннотации в JAX-RS используются разработчиками для украшения классов Java, чтобы определять ресурсы и методы, которые можно выполнять с этими ресурсами. Некоторые ключевые аннотации JAX-RS API:

  • @GET: используется для выполнения запросов GET в HTTP.
  • @POST: используется для выполнения запросов POST в HTTP.
  • @Path: относится к относительному пути класса Java.
  • @QueryParam: относится к параметрам запроса URI или URL.

Каковы некоторые ключевые особенности JAX-RS API?

Ответ: Особенности JAX-RS:

  • Кэширование на стороне клиента
  • Кэширование на стороне сервера
  • Настройка строки запроса
  • Аннотации времени выполнения

Как можно настроить приложения JAX-RS?

Ответ: Приложение JAX-RS состоит как минимум из одного класса ресурсов, упакованного в файле WAR. Базовый URI, с которого ресурсы приложения отвечают на запросы, можно задать одним из двух способов:

  • Использование аннотации @ApplicationPath в подклассе javax.ws.rs.core.Application, упакованном в WAR
  • Использование тега servlet-mapping в дескрипторе развертывания WAR web.xml

Что такое JAX-WS и JAX-RS?

Ответ. JAX-WS — это API-интерфейс веб-служб XML Jakarta, используемый для разработки API-интерфейсов с использованием простого протокола доступа к объектам (SOAP) — протокола обмена сообщениями на основе XML.

С другой стороны, JAX-RS — это Java API, используемый для создания веб-сервисов с использованием архитектуры REST.

Что такое коды состояния HTTP?

Ответ: Коды состояния — это не что иное, как способ сообщить статус ответа, отправленного сервером клиенту. Они присутствуют в заголовках ответов, отправляемых сервером.

Клиент может выяснить, был ли запрос неудачным или выполненным, или что-то не так с ответом, используя коды состояния.

Вот некоторые распространенные коды состояния HTTP:

  • 200 — это ключевое слово «ОК». Это означает, что запрос был выполнен, и ответ в порядке.
  • 404 — это означает «Не найдено». Это означает, что на сервере отсутствует ресурс или не существует конечной точки.
  • 500 — это означает «Внутренняя ошибка сервера». Обычно это происходит, когда сервер не может сгенерировать правильный ответ или возникает ошибка, которая не выдается явно.
  • 503 — означает «Сервис недоступен». Это означает, что в настоящее время сервер не может обрабатывать какие-либо запросы, вероятно, потому, что он мертв или не работает из-за перегрузки запросов. Это также может произойти, когда сервер находится на обслуживании.

Что такое методы HTTP?

Ответ: HTTP-методы используются для выполнения определенного типа действий над конкретным ресурсом API. Например, если вы хотите получить список фильмов из API коллекции фильмов, вы можете использовать метод GET, предоставляемый HTTP. Если вы хотите обновить данные, вы можете использовать метод POST, предоставляемый HTTP.

Часто используемые методы HTTP:

  • GET: запросы, использующие GET, должны извлекать только данные.
  • POST: он обновляет ресурс, отправляя обновленный ресурс на сервер.
  • УДАЛИТЬ: удаляет указанный ресурс.
  • ПАТЧ: частично изменяет ресурс.

Как работает базовая HTTP-аутентификация?

Ответ: Аутентификация — это процесс проверки подлинности клиента для обеспечения безопасности данных. В HTTP аутентификация работает через заголовок авторизации, который отправляется клиентом.

Заголовок авторизации состоит из имени пользователя/идентификатора и пароля клиента, который затем проверяется сервером, и доступ предоставляется.

Здесь важно отметить, что при использовании HTTP-аутентификации канал, по которому проходят учетные данные, должен быть зашифрован и защищен.

Вы можете защитить канал, используя уровень SSL, который интегрирован в HTTPS. Поэтому при работе с учетными данными рекомендуется использовать HTTPS вместо простого HTTP.

Каковы основные компоненты HTTP-запроса?

Ответ: HTTP-запрос состоит из следующих компонентов:

  • Строка запроса. Это первая строка любого запроса, состоящая из метода HTTP, пути или конечной точки и номера версии HTTP.
  • Заголовки: заголовки HTTP используются для предоставления метаданных запроса.
  • Тело (необязательно): этот компонент присутствует только для некоторых методов запроса. Это не требуется для запросов GET, но требуется для запросов POST. Это фактическое сообщение запроса.

Каковы основные компоненты ответа HTTP?

Ответ: Ответ HTTP состоит из следующих компонентов:

  • Статус: это относится к коду состояния HTTP, который отправляется сервером.
  • Заголовки: как и запросы, ответы также имеют соответствующие заголовки, которые предоставляют полезную информацию об ответе.
  • Сообщение: это фактические данные, которые сервер отправляет клиенту для запроса определенного ресурса.

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

Ответ: AJAX — это клиент, через который вы можете получить доступ к RESTful API. Он используется для отправки асинхронных запросов с использованием JavaScript.

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

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

Ответ: Representational State Transfer, или REST, — это архитектура с минимальными ограничениями для создания API. SOAP или простой протокол доступа к объектам — это протокол со строгими требованиями к реализации API.

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

Веб-службы SOAP имеют встроенную защиту, что является одним из преимуществ использования SOAP по сравнению с REST, но дополнительные функции также усложняют и усложняют использование.

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

Ответ: POST — это метод HTTP-запроса, который отправляет некоторые данные на сервер. Если вы делаете несколько запросов POST для определенного ресурса, это может привести к побочным эффектам для ваших данных. Например, если вы хотите добавить статью в коллекцию, если вы сделаете несколько запросов POST, в коллекцию будет добавлено несколько статей, что приведет к избыточным статьям.

PUT — это метод HTTP-запроса, который отправляет данные на сервер для определенного ресурса, но обновляет данные только один раз. Если вы отправляете несколько запросов PUT для определенного ресурса, никаких побочных эффектов не возникнет, и данные будут добавлены только один раз. В PUT, если ресурс не существует, он создаст новый, а если он существует, он обновит существующий.

PUT является идемпотентным, а POST — нет.

Что такое полезная нагрузка?

Ответ. Полезная нагрузка в REST API — это просто тело запроса, отправляемого клиентом на сервер. Это данные, которые вы хотите отправить на сервер и получить ответ.

Каков максимальный размер полезной нагрузки, которую можно отправить в почтовых методах?

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

Какие рекомендации необходимо соблюдать при создании URI?

Ответ. Вот некоторые из ключевых моментов, которые необходимо учитывать при разработке URI:

  • Избегайте использования расширений файлов
  • Будьте согласованы со всеми URI
  • Разделите URI на домены и поддомены для разных наборов ресурсов.
  • Вы должны использовать дефис или подчеркивание для разделения слов в предложениях, встроенных в URI.
  • Вы должны использовать косую черту, чтобы указать иерархию ресурсов
  • Кодировать URI, используя правильную кодировку
  • Попробуйте сделать URI понятным для человека

Что такое идемпотентные методы?

Ответ: Идемпотентные HTTP-методы одинаково влияют на сервер, несмотря на отправку нескольких одинаковых запросов. Например, если вы отправляете несколько одинаковых запросов DELETE для определенного ресурса, ресурс не будет меняться при каждом запросе; он будет обновляться, как если бы был отправлен только один запрос.

Некоторые из идемпотентных методов включают в себя:

  • ПОМЕЩАТЬ
  • УДАЛИТЬ
  • ПОЛУЧАТЬ
  • ГОЛОВА
  • ПАРАМЕТРЫ

Что такое почтальон?

Ответ: Postman — это инструмент разработки API для разработки, изменения и тестирования API. Он предоставляет множество функций для быстрого создания и тестирования API без необходимости настройки клиента.

Ответ: Заголовок Cache-Control состоит из инструкций или директив по настройке кэширования в браузерах и серверах. Он сообщает браузеру или серверу, что нужно кэшировать и как долго это должно кэшироваться, прежде чем будет запрошено через сетевой запрос.

Заголовок Cache-Control включает следующие директивы:

  • максимальный возраст
  • без кэша
  • частный
  • публичный
  • нет магазина
  • неизменный

Определение обмена сообщениями в веб-службах RESTful.

Ответ. Обмен сообщениями в веб-службах RESTful означает, что клиент отправляет HTTP-запрос на сервер, на который сервер отвечает HTTP-ответом. Это общение между клиентом и сервером называется обменом сообщениями.

В чем разница между монолитной архитектурой, SOA и микросервисной архитектурой?

Ответ: В монолитной архитектуре все управляется из одного места. Клиентская часть, сервер и база данных управляются из одного места. Вот почему он известен как монолитный, потому что слово «монолит» относится к одному блоку или камню.

SOA означает сервис-ориентированную архитектуру. В этой архитектуре различные аспекты приложения управляются разными службами, которые также являются программными. Итак, это совокупность нескольких сервисных программных модулей. Интеграция является ключевой частью этой архитектуры.

Архитектура микросервисов похожа на SOA, но, в отличие от SOA, имеет несколько автономных программ, которые взаимодействуют друг с другом с помощью API. В отличие от монолитной архитектуры здесь все автономно и в какой-то степени независимо.

Как работает микросервисная архитектура?

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

Некоторые преимущества архитектуры микрослужб включают гибкость, гибкость, масштабируемость, независимые технологии, повторно используемые службы и простоту развертывания.

Что такое КРУД?

Ответ: CRUD расшифровывается как Create, Read, Update, Delete. Это операции, которые можно выполнять с конкретным ресурсом. API, который поддерживает все эти операции, известен как CRUD API. Это самые основные операции, которые может выполнять API над ресурсом.

Что такое кэширование?

Ответ: Кэширование — это метод сохранения ответа или запроса на клиенте или сервере для последующего использования.

Ответы обычно кэшируются на клиенте, потому что, если клиент делает один и тот же запрос несколько раз за короткий промежуток времени, то нет смысла снова запрашивать ответ по сети и тратить пропускную способность.

Какая польза от @RequestMapping?

Ответ. Это аннотация в структуре Spring, которая используется для сопоставления веб-запросов с определенными классами обработчиков и/или методами обработчиков.

Что делает @PathVariable?

Ответ: аннотация @PathVariable в структуре Spring используется для извлечения значения переменных шаблона и присвоения их значения переменной метода.

Определите HttpMessageConverter.

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

Ответ: Вот некоторые инструменты, которые могут помочь вам в тестировании API:

  • Почтальон
  • Будьте уверены
  • Отдых острый
  • Каталон
  • Готовый API
  • Апигей

Заключительные слова

В настоящее время API-интерфейсы стали чрезвычайно популярными из-за появления Интернета. Другая причина популярности REST API заключается в том, что их легко разрабатывать и использовать.

Если вы готовитесь к собеседованию, рассмотрите приведенные выше вопросы об API REST, которые могут быть заданы на собеседовании.

Затем вы можете проверить, как очистить веб-сайт с помощью API веб-очистки toadmin.ru.