40 често задавани въпроси и отговори за интервю за REST API [2023]

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

Предимството на използването на API е да предоставите достъп до приложения на трети страни, така че те да не могат да получат достъп до всички данни на вашето приложение. Те имат достъп само до данните, които излагате чрез вашия API.

Приложението или потребителят, който иска достъп до данните, е известен като клиент, а приложението, което обслужва данните, е известно като сървър.

API се използват широко днес във всяка софтуерна архитектура. Ако кандидатствате за преден край, бек-енд, пълен стек или роля на мрежово инженерство, тогава ще ви бъдат зададени много въпроси относно API.

С това казано, нека проучим някои от най-често задаваните въпроси за интервю относно REST API.

Съдържание

Какво е REST?

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

Това не е протокол или стандарт; вместо това, това е архитектура, която може да се използва за внедряване на API по различни начини.

Той осигурява висока гъвкавост и свобода на разработчиците и затова се използва широко за разработване на API. Ето някои от принципите на REST архитектурата:

  • Разделяне на клиент и сървър: В RESTful API клиентът не трябва да засяга сървъра по друг начин, освен изискването на данни чрез URI (Uniform Resource Identifier). По същия начин сървърът не трябва да променя съдържанието на клиента по никакъв начин.
  • Липса на гражданство: Когато се направят две отделни заявки, те не знаят една за друга. С други думи, заявките са без състояние и не поддържат състояние. Ако дадена заявка бъде изпълнена, тя просто се прекратява. Всяка заявка е изолирана от другите заявки.
  • Многослойна архитектура: Клиентът или сървърът не знаят дали заявката се прави директно към източника или междинно приложение. Те се интересуват само от отговора на заявката.
  • Кеширане: Данните или отговорът могат да бъдат кеширани от страната на клиента, както и от страната на сървъра, за да се подобри производителността и скалируемостта. Ако има чести заявки за определен ресурс, тогава отговорът на тази заявка може да бъде кеширан и използван, когато е необходимо.

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

Отговор: Ключовите характеристики или функции на REST са:

  • Гъвкавост: Можете да преминавате от един сървър към друг и това няма да промени нищо, защото API ще изпрати същия отговор за конкретна заявка. Освен това можете да добавите толкова крайни точки, колкото искате за различни типове данни.
  • Мащабируемост: Кеширането подобрява мащабируемостта поради запазването на отговорите за по-късна употреба. Това намалява натоварването на сървъра и също така намалява латентността.
  • Упълномощаване: С помощта на заглавката за упълномощаване можете да посочите идентификационните данни, които сървърът може да използва, за да упълномощи заявката.
  • Липса на гражданство: Това е най-важната характеристика на REST, защото не позволява на заявките да знаят какво се случва с други заявки. Заявките се изолират и се прекратяват веднага щом бъдат изпълнени.

Какво представляват ресурсите в REST архитектура?

Отговор: Ресурсите са обекти, върху които се извършват различни операции, като извличане, актуализиране или изтриване. Те са основните градивни елементи на REST архитектурата.

  Създайте план за проект за минути с тези шаблони

Например, ако разглеждате онлайн магазин за електронна търговия, продуктите, потребителите, както и метаданните се считат за ресурси, защото с тях може да се работи. Ресурсите могат да бъдат прехвърлени към друго приложение чрез API.

Споменете някои предимства и недостатъци на 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 или @ИЗТРИЙ.

Какво е 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
  • Използване на маркера за съпоставяне на сървлета в дескриптора за разполагане на WAR web.xml

Какво представляват JAX-WS и JAX-RS?

Отговор: JAX-WS е API за XML уеб услуги на Джакарта, използван за разработване на API, използвайки Simple Object Access Protocol (SOAP) – базиран на XML протокол за съобщения.

  Как да направите флаер в Google Docs

От друга страна, JAX-RS е Java API, използван за създаване на уеб услуги с помощта на REST архитектурата.

Какво представляват 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 или Simple Object Access Protocol е протокол със строги изисквания за внедряване на API.

REST е по-гъвкав и лесен за използване от SOAP. Базираните на XML съобщения се използват в SOAP, докато в REST можете да използвате много типове трансфер на данни, като JSON, XML и т.н. В сравнение със SOAP, REST е по-лек и бърз.

Уеб услугите на SOAP имат вградена сигурност, което е едно от предимствата на използването на SOAP пред REST, но добавените функции също го правят сложен и труден за използване.

Каква е разликата между PUT и POST?

Отговор: POST е метод на HTTP заявка, който изпраща някои данни към сървъра. Ако направите няколко POST заявки за определен ресурс, тогава може да има странични ефекти върху вашите данни. Например, ако искате да добавите статия към колекция, ако направите няколко POST заявки, няколко статии ще бъдат добавени към колекцията, което ще доведе до излишни статии.

  Какво е Sedecordle? Как се играе тази игра

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 Web Services.

Отговор: Съобщенията в уеб услугите на RESTful се отнасят до това, че клиентът изпраща HTTP заявка до сървъра, на която сървърът отговаря с HTTP отговор. Тази комуникация между клиента и сървъра се нарича обмен на съобщения.

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

Отговор: В монолитната архитектура всичко се управлява от едно място. Клиентската страна, сървърът, както и базата данни се управляват от едно място. Ето защо е известен като монолитен, защото думата „монолит“ се отнася до единичен блок или камък.

SOA означава Service-Oriented Architecture. В тази архитектура различните аспекти на приложението се управляват от различни услуги, които също са софтуер. Така че това е комбинация от множество софтуерни модули за услуги. Интеграцията е ключовата част от тази архитектура.

Архитектурата на микроуслугите е подобна на SOA, но за разлика от SOA, тя има множество автономни софтуерни програми, които си говорят с помощта на API. За разлика от монолитната архитектура тук всичко е автономно и до известна степен независимо.

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

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

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

Какво е CRUD?

Отговор: CRUD означава създаване, четене, актуализиране, изтриване. Това са операциите, които могат да бъдат извършени върху определен ресурс. API, който поддържа всички тези операции, е известен като CRUD API. Това са най-основните операции, които могат да бъдат извършени от API върху ресурс.

Какво е кеширане?

Отговор: Кеширането е техника за съхраняване на отговор или заявка на клиента или сървъра, за да се използва отново по-късно.

Отговорите обикновено се кешират на клиента, защото ако клиентът направи една и съща заявка няколко пъти за кратък интервал от време, тогава няма смисъл да се изисква отговорът отново по мрежата и да се губи честотната лента.

Каква е употребата на @RequestMapping?

Отговор: Това е анотация в пролетната рамка, която се използва за картографиране на уеб заявки към конкретни класове манипулатори и/или методи на манипулатори.

Какво прави @PathVariable?

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

Дефинирайте HttpMessageConverter.

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

Отговор: Някои инструменти, които могат да ви помогнат при тестването на API, са следните:

  • Пощальон
  • Бъдете спокойни
  • Почивка Sharp
  • Каталон
  • ReadyAPI
  • Апигей

Заключителни думи

В днешно време API-тата станаха изключително популярни поради навлизането на интернет. Друга причина REST API да са популярни е, че са лесни за разработване и лесни за използване.

Ако се подготвяте за интервю, разгледайте въпросите по-горе относно REST API, които може да ви бъдат зададени по време на интервюто.

След това можете да проверите как да скрейпвате уебсайт с помощта на API за уеб скрапиране на pctechbg.net.