Зміст[Сховати][Показати]
- 1. Що ви розумієте під REST?
- 2. Що ви маєте на увазі під REST API?
- 3. Що таке URI?
- 4. Які характеристики RESTful Web Services?
- 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 легко створювати та кешувати через їх орієнтовану на ресурси архітектуру.
Крім того, протягом усього часу RESTful API були попередниками інших важливих розробок, таких як хмарні обчислення та дизайн на основі мікросервісів.
Тому не дивно, що розробники REST API сьогодні користуються попитом, враховуючи те, як вони надають компаніям, які використовують послуги RESTful, конкурентну перевагу. REST API є популярною тенденцією дизайну.
Багато ІТ-фірм хочуть знати REST API розробники програмного забезпечення і запитайте про це під час технічних співбесід.
Ось деякі з найбільш типових запитань для співбесіди з REST API, які допоможуть вам підготуватися до співбесід у різних фірмах, якщо ви хочете працювати у сфері розробки REST API.
1. Що ви розумієте під REST?
REST — це архітектурна парадигма для розробки веб-додатків, які базуються на протоколі передачі гіпертексту (HTTP).
REST визначає певні стандарти, яким веб-служби мають відповідати, щоб вважатися RESTful. Ці рекомендації гарантують швидку й ефективну передачу запитів і ресурсів між клієнтом і сервером за допомогою стандартизованих протоколів HTTP.
2. Що ви маєте на увазі під REST API?
Зв’язок між програмними засобами, відомий як інтерфейс прикладного програмування, забезпечує зв’язок і обмін даними між незалежними програмами. Наприклад, веб-сайт новин може використовувати API Twitter, щоб автоматично виявляти відповідні твіти та інтегрувати їх у новини.
API, який дотримується принципів REST, відомий як REST API, іноді відомий як RESTful API. В REST API кожна частина даних обробляється як ресурс і отримує окремий стандартний ідентифікатор ресурсу (URI).
Наприклад, Twitter API робить кожен твіт ресурсом, доступним для клієнтів. Twitter API може використовуватися користувачами для публікації твітів і виконання інших завдань веб-сайту.
3. Що таке URI?
A комп'ютерної мережі на ресурс можна посилатися за допомогою URI або уніфікованого ідентифікатора ресурсу. Він служить засобом відокремлення одного ресурсу від іншого. Джерела можуть бути або не бути онлайн.
Завдяки своїй стандартній структурі URI спрощують підключення навіть до різних типів ресурсів. Розташування або назва ресурсу включаються в URI разом із рядком символів.
URI складається з шляху, схеми, запиту та інших елементів, але не включає протокол.
За допомогою протоколу URL-адреси (уніфіковані покажчики ресурсів) використовуються для пошуку ресурсів в Інтернеті або доступних через нього.
4. Які характеристики RESTful Web Services?
- Парадигма клієнт-сервер є основою сервісу.
- Служба може отримати доступ до ресурсів за допомогою URI.
- Служба використовує протокол HTTP для отримання даних/ресурсів, виконання запитів та виконання інших завдань.
- Обмін повідомленнями – це назва методу, який використовується для зв’язку між клієнтом і сервером.
- Ці служби також можуть реалізувати архітектурний шаблон REST за допомогою служб SOAP.
- Щоб зменшити кількість викликів сервера для однотипних повторюваних запитів, ці служби також використовують ідею кешування.
5. Які керівні принципи REST?
API REST мають відповідати п’яти критеріям:
Відокремлення клієнт-сервер: для зв’язку між клієнтом і сервером можна використовувати лише ряд запитів і відповідей. Лише клієнти та сервери можуть надсилати запити та відповіді відповідно. Ця проста ідея дозволяє обом сторонам функціонувати незалежно одна від одної.
Уніфікований інтерфейс: для всіх з’єднань клієнт-сервер повинен існувати єдиний протокол. Цей протокол для 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 простіше завдяки API Java для веб-сервісів RESTful, який часто називають JAX-RS. Розробники можуть описувати ресурси та операції, які над ними можна виконувати, використовуючи надані анотації.
10. Що відрізняє AJAX і REST один від одного?
Аякс:
- 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 Gateway.
- Весь матеріал системи зберігається як статичний вміст.
- Інструмент керування перевіряє баланс служб на вузлах і наявність несправностей.
- Виявленню шляху зв’язку між мікросервісами допомагає виявлення сервісів.
- Центри обробки даних і проксі-сервери утворюють розосереджені мережеві системи, які називаються мережами доставки вмісту.
- Віддалені служби забезпечують доступ до інформації на відстані.
16. Що саме таке кешування?
Практика тимчасового зберігання копії відповіді сервера десь (наприклад, у пам’яті комп’ютера) з метою швидшого доступу до неї пізніше відома як кешування.
Кешування підвищує швидкість сервера під час використання REST API, зменшуючи обсяг роботи, який сервер повинен виконати, щоб задовольнити запит. Програми, які використовують API, працюють швидше завдяки кешенню, оскільки їм не потрібно надсилати новий запит кожного разу, коли їм потрібен ресурс.
Поле Cache-Control заголовка відповіді HTTP містить інформацію про те, як довго ресурс може кешуватися клієнтом, перш ніж до нього потрібно буде знову отримати доступ.
17. Опишіть корисне навантаження.
Корисне навантаження в REST стосується інформації, що міститься в тілі відповіді HTTP. Клієнт використовував техніку GET для запиту відповідних даних.
Документ, що містить текст твіту та будь-які файли, необхідні для розміщення твіту на веб-сайті, буде включено до корисного навантаження, наприклад, якщо ви запитуєте API Twitter про певний твіт. Крім того, корисне навантаження можна включити в HTTP-запит за допомогою методу POST.
18. Диференціювати SOAP проти REST?
- На відміну від 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 на код кількома різними мовами.
Кожен етап циклу API стає простішим за допомогою Postman, а співпраця спрощена для швидшої розробки API.
Крім того, це дозволяє розробникам керувати документацією, специфікаціями, тестовими випадками, процесами та каталогами API.
26. Як захищаються REST API?
Оскільки API REST не використовують такі суворі заходи безпеки, як API SOAP, конфіденційні дані не слід надсилати чи отримувати з їх допомогою.
Однак надійні REST API продовжують інтегрувати елементи керування безпекою для безпечної та надійної передачі даних.
- Автентифікація та авторизація: кожен запит до API має пройти ці дві перевірки. Перевірка ідентичності клієнта шляхом автентифікації та підтвердження того, що він має повноваження на доступ до запитуваних ресурсів через авторизацію, є двома різними процесами.
- Перевірка: перш ніж API надасть доступ до своїх ресурсів, запити все одно повинні бути перевірені на наявність можливо шкідливого коду після автентифікації та авторизації. Таким чином, сервер буде відкритим для ін’єкційної атаки.
- Перевірка: перш ніж API надасть доступ до своїх ресурсів, запити все одно повинні бути перевірені на наявність можливо шкідливого коду після автентифікації та авторизації. Таким чином, сервер буде відкритим для ін’єкційної атаки.
- Шифрування: шифрування TLS/SSL захищає з’єднання між клієнтом і сервером і запобігає перехопленню хакерами запитів і відповідей.
- Техніки обмеження швидкості, такі як ліміти та троттлінг, захищають сервери від атак грубої сили, таких як DDoS, які мають на меті погіршити їхню роботу або збити їх.
- Жодної конфіденційної інформації в URI: URI ресурсів не повинні містити жодних захищених даних (таких як ім’я користувача, пароль або маркер автентифікації).
Висновок
Щиро вітаю! Кілька базових і складних запитань для співбесіди з REST API та відповідні рішення тепер у вас під рукою.
Тепер, коли у вас є гарне уявлення про те, як відповідати на деякі типові запитання співбесіди щодо REST API, ви можете переходити до відповідей на співбесіди. Наступний крок залежить від ваших цілей.
візит Серія інтерв'ю з Hashdork для підготовки до співбесід.
залишити коментар