40 запитань і відповідей на співбесіді щодо REST API [2023]

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

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

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

API сьогодні широко використовуються в кожній архітектурі програмного забезпечення. Якщо ви подаєте заявку на роль інтерфейсу, серверу, повного стеку або мережевої інженерії, то вам зададуть багато запитань щодо API.

З огляду на це, давайте розглянемо деякі з найпоширеніших запитань на співбесіді про REST API.

Зміст

Що таке REST?

Відповідь: REST — це архітектурний дизайн, який визначає деякі обмеження на роботу API. API, які відповідають принципам REST, відомі як RESTful API. REST означає Representational State Transfer.

Це не протокол чи стандарт; натомість це архітектура, яку можна використовувати для реалізації API різними способами.

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

  • Розділення клієнта та сервера: в API RESTful клієнт не повинен впливати на сервер іншим способом, окрім запиту даних через URI (уніфікований ідентифікатор ресурсу). Таким же чином сервер не повинен жодним чином змінювати вміст клієнта.
  • Безгромадянства: коли надходять два окремі запити, вони не знають один про одного. Іншими словами, запити не мають стану та не підтримують стан. Якщо запит виконується, він просто завершується. Кожен запит ізольований від інших запитів.
  • Рівнева архітектура: клієнт або сервер не знають, чи запит надсилається безпосередньо до джерела чи до програми-посередника. Їх хвилює лише відповідь на запит.
  • Кешування: дані або відповідь можна кешувати як на стороні клієнта, так і на сервері для підвищення продуктивності та масштабованості. Якщо є часті запити на певний ресурс, то відповідь на цей запит можна кешувати та використовувати за потреби.

Які ключові характеристики REST?

Відповідь: Ключовими характеристиками або особливостями REST є:

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

Що таке ресурси в архітектурі REST?

Відповідь: Ресурси – це сутності, над якими виконуються різні операції, наприклад отримання, оновлення або видалення. Вони є основними будівельними блоками архітектури REST.

Наприклад, якщо ви розглядаєте інтернет-магазин електронної комерції, продукти, користувачі, а також метадані вважаються ресурсами, оскільки ними можна керувати. Ресурси можна перенести в іншу програму через API.

  13 найкращих інструментів для відновлення даних iPhone і iPad- [Data Recovery]

Згадайте деякі переваги та недоліки REST API.

Відповідь: Переваги REST API полягають у наступному:

  • Це просто в реалізації.
  • Ресурсами можна легко керувати.
  • Він масштабований завдяки архітектурі клієнт-сервер.
  • Підтримує кілька типів носіїв для передачі даних, таких як XML і JSON.

Його недоліками є:

  • Ви не можете підтримувати стан між запитами.
  • Справжнє джерело джерела ресурсу не може бути відоме через багаторівневу архітектуру.
  • Не підходить для складних запитів або запитів.

Визначте шаблон REST.

Відповідь: шаблон REST — це утиліта або клієнт, за допомогою якого ви можете отримати доступ до REST API у Spring framework. По суті, він приховує шаблонний код, який вам, можливо, доведеться написати, щоб запитувати ресурс від REST API.

Що таке RESTful?

Відповідь: RESTful API або служби — це інтерфейси, які реалізують архітектурний стиль REST (Representational State Transfer) і працюють за допомогою таких протоколів, як HTTP.

Що таке веб-служби RESTful?

Відповідь: веб-служби RESTful створені для найкращої роботи в Інтернеті. Representational State Transfer (REST) ​​— це архітектурний стиль, який визначає обмеження, такі як уніфікований інтерфейс, багаторівнева архітектура та відсутність стану, якщо вони застосовані до веб-служби, викликають бажані властивості, такі як продуктивність і масштабованість, які дозволяють службам найкраще працювати на Інтернет.

Як перевірити веб-сервіси RESTful?

Відповідь: щоб перевірити веб-службу RESTful, ви можете скористатися клієнтом REST, таким як Postman або Thunder Client, і запитати веб-службу, яку хочете перевірити. Потім, коли ви отримаєте відповідь, зрозумійте відповідь; це ключова частина.

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

Згадайте деякі функції веб-служб RESTful.

Відповідь: Деякі з ключових функцій веб-служб RESTful:

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

Визначте класи кореневих ресурсів RESTful.

Відповідь: Класи кореневих ресурсів — це «прості старі об’єкти Java» (POJO), які або анотовані @Path, або мають принаймні один метод, анотований @Path або позначення методу запиту, наприклад @GET, @POST, @PUT або @DELETE.

Що таке URI?

Відповідь: URI означає Uniform Resource Identifier. Це послідовність символів, яка використовується для пошуку або ідентифікації ресурсів 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 у дескрипторі розгортання web.xml WAR

Що таке JAX-WS і JAX-RS?

Відповідь: JAX-WS — це API веб-служб XML у Джакарті, який використовується для розробки API за допомогою протоколу простого доступу до об’єктів (SOAP) — протоколу обміну повідомленнями на основі XML.

З іншого боку, JAX-RS — це Java API, який використовується для створення веб-сервісів за допомогою архітектури REST.

  Як вести пряму трансляцію зимових Олімпійських ігор у 2022 році

Що таке коди стану HTTP?

Відповідь: Коди стану — це не що інше, як спосіб передачі статусу відповіді, надісланої сервером клієнту. Вони присутні в заголовках відповідей, надісланих сервером.

За допомогою кодів статусу клієнт може з’ясувати, чи запит не вдався, чи було виконано, чи є щось не так із відповіддю.

Ось кілька поширених кодів стану HTTP:-

  • 200 – означає ключове слово «OK». Це означає, що запит виконано, і відповідь прийнятна.
  • 404 – означає «Не знайдено». Це означає, що ресурс відсутній на сервері або кінцева точка не існує.
  • 500 – означає «внутрішню помилку сервера». Зазвичай це трапляється, коли сервер не може згенерувати правильну відповідь або виникає помилка, яка не видається явно.
  • 503 – означає «Сервіс недоступний». Це означає, що наразі сервер не може обробити жодних запитів, можливо, через те, що він мертвий або не працює через перевантаження запитів. Це також може статися, коли сервер знаходиться на технічному обслуговуванні.

Що таке методи HTTP?

Відповідь: Методи HTTP використовуються для виконання певного типу дій на конкретному ресурсі API. Наприклад, якщо ви хочете отримати список фільмів з API колекції фільмів, ви можете скористатися методом GET, який надає HTTP. Якщо ви хочете оновити дані, ви можете використовувати метод POST, наданий HTTP.

Часто використовувані методи HTTP:

  • GET: Запити з використанням GET мають лише отримувати дані.
  • POST: оновлює ресурс, надсилаючи щойно оновлений ресурс на сервер.
  • DELETE: видаляє вказаний ресурс.
  • ПАТЧ: частково змінює ресурс.

Як працює базова автентифікація HTTP?

Відповідь: автентифікація – це процес перевірки автентичності клієнта для підтримки безпеки даних. У HTTP автентифікація працює через заголовок авторизації, який надсилає клієнт.

Заголовок авторизації складається з імені користувача/ідентифікатора та пароля клієнта, які потім перевіряються сервером, і доступ надається.

Тут слід зауважити одну важливу річ: під час використання автентифікації HTTP канал, через який проходять облікові дані, має бути зашифрованим і безпечним.

Ви можете захистити канал за допомогою рівня SSL, який інтегрований у HTTPS. Тому при роботі з обліковими даними рекомендується використовувати HTTPS замість простого HTTP.

Які основні компоненти HTTP-запиту?

Відповідь: HTTP-запит складається з таких компонентів:

  • Рядок запиту: це перший рядок будь-якого запиту, який складається з методу HTTP, шляху або кінцевої точки та номера версії HTTP.
  • Заголовки: заголовки HTTP використовуються для надання метаданих запиту.
  • Тіло (необов’язково): цей компонент присутній лише для деяких методів запиту. Це не потрібно для запитів GET, але потрібне для запитів POST. Це фактичне повідомлення запиту.

Які основні компоненти HTTP-відповіді?

Відповідь: відповідь HTTP складається з таких компонентів:

  • Статус: стосується коду статусу HTTP, який надсилає сервер.
  • Заголовки: як і запити, відповіді також мають відповідні заголовки, які надають корисну інформацію про відповідь.
  • Повідомлення: це фактичні дані, які надсилаються сервером клієнту для запиту певного ресурсу.

Яка різниця між REST і AJAX?

Відповідь: AJAX — це клієнт, за допомогою якого можна отримати доступ до RESTful API. Він використовується для надсилання асинхронних запитів за допомогою JavaScript.

REST або Representational State Transfer — це архітектура, яку можна реалізувати для створення 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, кілька статей буде додано до колекції, що призведе до зайвих статей.

  SHINE для Reddit – це шкіра, яка зосереджена виключно на вмісті [Chrome]

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 містить такі директиви:-

  • максимальний вік
  • немає кешу
  • приватний
  • громадськість
  • no-store
  • незмінний

Визначення обміну повідомленнями у веб-службах RESTful.

Відповідь: обмін повідомленнями у веб-службах RESTful стосується надсилання клієнтом HTTP-запиту на сервер, на який сервер відповідає HTTP-відповіддю. Цей зв’язок між клієнтом і сервером називається обміном повідомленнями.

Яка різниця між монолітною архітектурою, архітектурою SOA та мікросервісами?

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

SOA розшифровується як сервіс-орієнтована архітектура. У цій архітектурі різними аспектами програми керують різні служби, які також є програмним забезпеченням. Таким чином, це поєднання кількох модулів сервісного програмного забезпечення. Інтеграція є ключовою частиною цієї архітектури.

Архітектура мікросервісів схожа на SOA, але на відміну від SOA, вона має кілька автономних програм, які спілкуються одна з одною за допомогою API. На відміну від монолітної архітектури, тут все автономно і в якійсь мірі незалежне.

Як працює мікросервісна архітектура?

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

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

Що таке CRUD?

Відповідь: CRUD означає «Створити», «Читати», «Оновити», «Видалити». Це операції, які можна виконувати на конкретному ресурсі. API, який підтримує всі ці операції, відомий як CRUD API. Це найпростіші операції, які API може виконувати на ресурсі.

Що таке кешування?

Відповідь: Кешування — це техніка збереження відповіді чи запиту на клієнті чи сервері для подальшого використання.

Відповіді, як правило, кешуються на клієнті, тому що якщо клієнт робить той самий запит кілька разів за короткий проміжок часу, тоді немає сенсу знову запитувати відповідь через мережу та витрачати пропускну здатність.

Яке використання @RequestMapping?

Відповідь: це анотація у рамках Spring, яка використовується для відображення веб-запитів на певні класи обробників та/або методи обробників.

Що робить @PathVariable?

Відповідь: Анотація @PathVariable у Spring Framework використовується для вилучення значення змінних шаблону та призначення їхнього значення змінній методу.

Визначте HttpMessageConverter.

Відповідь: коли запит HTTP (або його частини) потрібно перетворити на тип, потрібний як аргумент для методу обробника, або коли значення, повернуте методом обробника, потрібно якимось чином перетворити для створення відповіді HTTP, HTTP використовуються конвертери повідомлень.

Відповідь: Деякі інструменти, які можуть допомогти вам у тестуванні API, такі:

  • Листоноша
  • Будьте впевнені
  • Рест Шарп
  • Каталон
  • ReadyAPI
  • Апігей

Заключні слова

Сьогодні API стали надзвичайно популярними завдяки появі Інтернету. Інша причина популярності REST API полягає в тому, що їх легко розробити та використовувати.

Якщо ви готуєтеся до співбесіди, розгляньте наведені вище запитання про REST API, які можуть бути задані під час вашої співбесіди.

Далі ви можете перевірити, як скрейпувати веб-сайт за допомогою API веб-скрапування techukraine.net.