40 Často kladené otázky a odpovědi pro rozhovory REST API [2023]

API je zkratka pro Application Programming Interface. Slouží jako brána pro aplikace pro přístup k některým zdrojům z jiných aplikací.

Výhodou použití API je poskytnout přístup k aplikacím třetích stran tak, aby neměly přístup ke všem datům vaší aplikace. Mohou přistupovat pouze k datům, která zpřístupníte prostřednictvím vašeho API.

Aplikace nebo uživatel, který chce přistupovat k datům, se nazývá klient a aplikace, která data obsluhuje, je známá jako server.

API jsou dnes široce používána v každé softwarové architektuře. Pokud žádáte o roli front-end, back-end, full-stack nebo síťového inženýra, budete se ptát na spoustu otázek týkajících se rozhraní API.

S tím, co bylo řečeno, pojďme prozkoumat některé z nejčastějších dotazů na rozhovory o REST API.

Co je to REST?

Odpověď: REST je architektonický návrh, který definuje některá omezení pro fungování API. Rozhraní API, která se řídí principy REST, jsou známá jako RESTful API. REST je zkratka pro Representational State Transfer.

Není to protokol ani standard; místo toho je to architektura, kterou lze použít k implementaci API různými způsoby.

Poskytuje vysokou flexibilitu a svobodu vývojářům, a proto je široce používán pro vývoj API. Zde jsou některé z principů architektury REST:

  • Oddělení klienta a serveru: V rozhraní RESTful API by klient neměl ovlivňovat server jiným způsobem, než vyžadováním dat prostřednictvím URI (Uniform Resource Identifier). Stejně tak by server neměl nijak upravovat obsah klienta.
  • Bezdomovectví: Když jsou vzneseny dvě samostatné žádosti, nevědí o sobě. Jinými slovy, žádosti jsou bez státní příslušnosti a neudržují stav. Pokud je požadavek splněn, jednoduše se ukončí. Každý požadavek je izolován od ostatních požadavků.
  • Vrstvená architektura: Klient nebo server neví, zda je požadavek zasílán přímo původní nebo zprostředkující aplikaci. Zajímá je pouze odpověď na žádost.
  • Ukládání do mezipaměti: Data nebo odezvy lze ukládat do mezipaměti na straně klienta i serveru pro zlepšení výkonu a škálovatelnosti. Pokud existují časté požadavky na konkrétní zdroj, lze odpověď na tento požadavek uložit do mezipaměti a použít ji v případě potřeby.

Jaké jsou některé klíčové vlastnosti ODPOČINKU?

Odpověď: Klíčové vlastnosti nebo vlastnosti REST jsou:

  • Flexibilita: Můžete se přesunout z jednoho serveru na druhý a nic se tím nezmění, protože rozhraní API odešle stejnou odpověď na konkrétní požadavek. Můžete také přidat libovolný počet koncových bodů pro různé typy dat.
  • Škálovatelnost: Ukládání do mezipaměti zlepšuje škálovatelnost díky ukládání odpovědí pro pozdější použití. Snižuje zatížení serveru a také snižuje latenci.
  • Autorizace: Pomocí hlavičky autorizace můžete zadat přihlašovací údaje, které může server použít k autorizaci požadavku.
  • Bezstavovost: Toto je nejdůležitější funkce REST, protože zabraňuje požadavkům, aby věděly, co se děje s jinými požadavky. Požadavky jsou izolovány a ukončeny, jakmile jsou splněny.

Jaké jsou zdroje v architektuře REST?

Odpověď: Zdroje jsou entity, se kterými se provádějí různé operace, jako je načítání, aktualizace nebo mazání. Jsou základními stavebními kameny REST architektury.

  Publikování Covid' Special zdarma online

Pokud například uvažujete o online obchodě s elektronickým obchodem, produkty, uživatelé i metadata jsou považovány za zdroje, protože je lze provozovat. Prostředky lze přenést do jiné aplikace prostřednictvím API.

Uveďte některé výhody a nevýhody REST API.

Odpověď: Výhody REST API jsou následující:

  • Je to jednoduché na implementaci.
  • Se zdroji lze snadno manipulovat.
  • Je škálovatelný díky architektuře klient-server.
  • Podporuje více typů médií pro přenos dat, jako je XML a JSON.

Jeho nevýhody jsou:

  • Nemůžete udržovat stav mezi požadavky.
  • Skutečný zdroj původu zdroje nemůže být znám kvůli vrstvené architektuře.
  • Není vhodné pro složité dotazy nebo požadavky.

Definujte REST Template.

Odpověď: Šablona REST je nástroj nebo klient, jehož prostřednictvím můžete přistupovat k rozhraním REST API v rámci Spring. V podstatě skrývá standardní kód, který možná budete muset napsat, abyste mohli požádat o zdroj z REST API.

Co je RESTful?

Odpověď: RESTful API nebo služby jsou rozhraní, která implementují architektonický styl REST (Representational State Transfer) a pracují pomocí protokolů, jako je HTTP.

Co jsou webové služby RESTful?

Odpověď: Webové služby RESTful jsou vytvořeny tak, aby fungovaly co nejlépe na webu. Representational State Transfer (REST) ​​je architektonický styl, který specifikuje omezení, jako je jednotné rozhraní, vrstvená architektura a bezstavový stav, pokud jsou aplikovány na webovou službu, vyvolávají žádoucí vlastnosti, jako je výkon a škálovatelnost, které umožňují, aby služby fungovaly co nejlépe. síť.

Jak můžete otestovat webové služby RESTful?

Odpověď: Chcete-li otestovat webovou službu RESTful, můžete použít klienta REST, jako je Postman nebo Thunder Client, a dotazovat se na webovou službu, kterou chcete otestovat. Poté, když dostanete odpověď, pochopte odpověď; to je klíčová část.

Pokud chcete otestovat komplexní rozhraní API s mnoha koncovými body, možná budete muset testování rozdělit a provést testování jednotek, testování integrace, testování výkonu a testování end-to-end.

Zmiňte některé funkce webových služeb RESTful.

Odpověď: Některé z klíčových funkcí webových služeb RESTful jsou:

  • Podpora více typů médií, jako jsou JSON a XML.
  • Škálovatelnost
  • Izolace klienta a serveru
  • Flexibilita

Definujte RESTful Root Resource Classes.

Odpověď: Třídy kořenových prostředků jsou „prosté staré objekty Java“ (POJO), které jsou buď anotované @Path nebo mají alespoň jednu metodu anotovanou @Path nebo označení metody požadavku, jako je @GET, @POST, @PUT nebo @VYMAZAT.

Co je URI?

Odpověď: URI znamená Uniform Resource Identifier. Je to posloupnost znaků používaná k vyhledání nebo identifikaci zdrojů rozhraní API nebo služby. Používá název nebo umístění zdroje k jeho identifikaci, ale nespoléhá se na konkrétní metodu nebo techniku.

Co je bezdomovectví v REST?

Odpověď: Bezstavovost odkazuje na jedno omezení aplikované na API, ve kterém žádné dva požadavky nemohou vědět, co se mezi sebou děje. Jinými slovy, stav požadavků není udržován. Pokud je požadavek splněn, po obdržení odpovědi se jednoduše ukončí.

Co je JAX-RS?

Odpověď: JAX-RS je Java API, které vám umožňuje vyvíjet aplikace v Javě využívající architekturu REST. Toto API usnadňuje vývoj aplikací REST v Javě.

Jaké jsou klíčové anotace v JAX-RS API?

Odpověď: Anotace v JAX-RS používají vývojáři k dekorování tříd Java, aby definovali prostředky a metody, které lze na těchto prostředcích provádět. Některé klíčové anotace JAX-RS API jsou:

  • @GET: Používá se pro vytváření požadavků GET v HTTP.
  • @POST: Používá se pro vytváření požadavků POST v HTTP.
  • @Path: Odkazuje na relativní cestu třídy Java.
  • @QueryParam: Odkazuje na parametry dotazu URI nebo URL.

Jaké jsou některé klíčové vlastnosti JAX-RS API?

Odpověď: Vlastnosti JAX-RS jsou:

  • Ukládání do mezipaměti na straně klienta
  • Ukládání do mezipaměti na straně serveru
  • Přizpůsobení řetězce dotazu
  • Runtime anotace

Jak lze konfigurovat aplikace JAX-RS?

Odpověď: Aplikace JAX-RS se skládá z alespoň jedné třídy prostředků zabalených do souboru WAR. Základní identifikátor URI, ze kterého prostředky aplikace odpovídají na požadavky, lze nastavit jedním ze dvou způsobů:

  • Použití anotace @ApplicationPath v podtřídě javax.ws.rs.core.Application zabalené v rámci WAR
  • Použití značky servlet-mapping v rámci deskriptoru nasazení web.xml WAR

Co jsou JAX-WS a JAX-RS?

Odpověď: JAX-WS je Jakarta XML Web Services API používané pro vývoj API pomocí Simple Object Access Protocol (SOAP) – protokol pro zasílání zpráv založený na XML.

  Jak vypnout automatický zámek na iPhone

Na druhou stranu, JAX-RS je Java API používané pro vytváření webových služeb pomocí architektury REST.

Co jsou stavové kódy HTTP?

Odpověď: Stavové kódy nejsou nic jiného než způsob, jak sdělit stav odpovědi zaslané serverem klientovi. Jsou přítomny v hlavičkách odpovědí zaslaných serverem.

Klient je schopen pomocí stavových kódů zjistit, zda požadavek selhal nebo byl splněn nebo zda je s odpovědí něco v nepořádku.

Zde jsou některé běžné stavové kódy HTTP:-

  • 200 – Znamená klíčové slovo „OK“. To znamená, že požadavek byl splněn a odpověď je v pořádku.
  • 404 – Zkratka znamená „Nenalezeno“. To znamená, že zdroj není na serveru nebo neexistuje koncový bod.
  • 500 – znamená „Interní chyba serveru“. K tomu obvykle dochází, když server nemůže vygenerovat správnou odpověď nebo dojde k chybě, která není explicitně vyvolána.
  • 503 – Zkratka znamená „Služba není k dispozici“. To znamená, že v současné době server nemůže zpracovat žádné požadavky, pravděpodobně proto, že je mrtvý nebo nefunguje kvůli přetížení požadavků. Může k tomu také dojít, když je server připraven na údržbu.

Co jsou metody HTTP?

Odpověď: Metody HTTP se používají k provedení určitého typu akce na konkrétním zdroji rozhraní API. Pokud například chcete načíst seznam filmů z rozhraní API kolekce filmů, můžete použít metodu GET poskytovanou protokolem HTTP. Pokud chcete data aktualizovat, můžete použít metodu POST poskytovanou protokolem HTTP.

Nejčastěji používané metody HTTP jsou následující:

  • GET: Požadavky pomocí GET by měly načítat pouze data.
  • POST: Aktualizuje zdroj odesláním nově aktualizovaného zdroje na server.
  • DELETE: Odstraní zadaný prostředek.
  • PATCH: Částečně upravuje zdroj.

Jak funguje základní ověřování HTTP?

Odpověď: Autentizace je proces pro ověření pravosti klienta pro zachování bezpečnosti dat. V HTTP funguje ověřování prostřednictvím hlavičky autorizace, kterou odesílá klient.

Autorizační hlavička se skládá z uživatelského jména/id a hesla klienta, které je následně ověřeno serverem a je povolen přístup.

Jedna důležitá věc, kterou je třeba poznamenat, je, že při použití ověřování HTTP by měl být kanál, kterým procházejí přihlašovací údaje, šifrovaný a zabezpečený.

Kanál můžete zabezpečit pomocí vrstvy SSL, která je integrována do HTTPS. Proto se při práci s přihlašovacími údaji doporučuje používat HTTPS místo jednoduchého HTTP.

Jaké jsou základní součásti požadavku HTTP?

Odpověď: Požadavek HTTP se skládá z následujících součástí:

  • Řádek požadavku: Je to první řádek v každém požadavku a skládá se z metody HTTP, cesty nebo koncového bodu a čísla verze HTTP.
  • Záhlaví: Záhlaví HTTP se používá k poskytování metadat požadavku.
  • Body (Volitelné): Tato komponenta je přítomna pouze u některých metod požadavku. Není vyžadován pro požadavky GET, ale je vyžadován pro požadavky POST. Je to skutečná zpráva žádosti.

Jaké jsou základní součásti odezvy HTTP?

Odpověď: HTTP odpověď se skládá z následujících komponent:

  • Stav: Odkazuje na stavový kód HTTP, který odesílá server.
  • Záhlaví: Stejně jako požadavky mají i odpovědi své příslušné hlavičky, které poskytují užitečné informace o odpovědi.
  • Zpráva: Toto jsou skutečná data, která server odešle klientovi za účelem vyžádání určitého zdroje.

Jaký je rozdíl mezi REST a AJAX?

Odpověď: AJAX je klient, jehož prostřednictvím můžete přistupovat k RESTful API. Používá se k odesílání asynchronních požadavků pomocí JavaScriptu.

REST nebo Representational State Transfer je architektura, kterou lze implementovat pro vytváření RESTful API. Stručně řečeno, k odesílání požadavků HTTP můžete použít AJAX, který slouží jako klient, ale pokud chcete implementovat RESTful API, musíte použít architekturu REST.

Jaký je rozdíl mezi SOAP a REST?

Odpověď: Representational State Transfer neboli REST je architektura s minimálními omezeními pro vytváření rozhraní API. SOAP neboli Simple Object Access Protocol je protokol s přísnými požadavky na implementaci API.

REST je flexibilnější a snadněji použitelný než SOAP. Zasílání zpráv na bázi XML se používá v SOAP, zatímco v REST můžete použít mnoho typů přenosu dat, jako je JSON, XML atd. Ve srovnání se SOAP je REST lehčí a rychlejší.

Webové služby SOAP mají vestavěné zabezpečení, což je jedna z výhod používání SOAP oproti REST, ale díky přidaným funkcím je také složité a náročné na používání.

Jaký je rozdíl mezi PUT a POST?

Odpověď: POST je metoda požadavku HTTP, která odesílá některá data na server. Pokud zadáte více požadavků POST pro konkrétní zdroj, může to mít vedlejší účinky na vaše data. Pokud například chcete přidat článek do kolekce a zadáte více požadavků POST, bude do kolekce přidáno více článků, což povede k nadbytečným článkům.

  Jak převést PDF do dokumentu Word (PLNÝ PRŮVODCE)

PUT je metoda požadavku HTTP, která odesílá data na server pro konkrétní zdroj, ale aktualizuje data pouze jednou. Pokud odešlete více požadavků PUT pro konkrétní zdroj, nenastanou žádné vedlejší účinky a data budou přidána pouze jednou. V PUT, pokud zdroj neexistuje, vytvoří nový, a pokud existuje, aktualizuje stávající.

PUT je idempotent, zatímco POST ne.

Co je to užitečné zatížení?

Odpověď: Užitná zátěž v REST API je jednoduše tělo požadavku odeslaného z klienta na server. Jsou to data, která chcete odeslat na server a získat odpověď.

Jaká je maximální velikost užitečného zatížení, kterou lze odeslat v metodách příspěvku?

Odpověď: Neexistuje žádný výchozí limit stanovený samotným protokolem HTTP. Limit může záviset na maximálním limitu klienta nebo serveru, podle toho, která hodnota je minimální.

Jaké jsou nejlepší postupy při vytváření URI, které je třeba dodržovat?

Odpověď: Některé z klíčových bodů, které musíte mít na paměti při navrhování URI, jsou:

  • Vyhněte se používání přípon souborů
  • Buďte konzistentní se všemi URI
  • Rozdělte URI na domény a subdomény pro různé sady zdrojů
  • K oddělení slov ve větách vložených do URI byste měli používat pomlčku nebo podtržítko
  • K označení hierarchie zdrojů byste měli použít lomítko
  • Zakódujte URI pomocí správného kódování
  • Snažte se, aby URI bylo čitelné pro člověka

Co jsou idempotentní metody?

Odpověď: Idempotentní metody HTTP mají stejný účinek na server, přestože zasílají více stejných požadavků. Pokud například odešlete více identických požadavků DELETE pro určitý zdroj, zdroj se nezmění při každém požadavku; aktualizuje se, jako by byla odeslána pouze jedna žádost.

Některé z idempotentních metod zahrnují:

  • DÁT
  • VYMAZAT
  • DOSTAT
  • HLAVA
  • MOŽNOSTI

Co je pošťák?

Odpověď: Postman je nástroj pro vývoj API pro vývoj, úpravu a testování API. Poskytuje mnoho funkcí pro rychlé vytváření a testování API bez nutnosti nastavení klienta.

Odpověď: Hlavička Cache-Control se skládá z instrukcí nebo direktiv pro konfiguraci ukládání do mezipaměti v prohlížečích a serverech. Sděluje prohlížeči nebo serveru, co má být uloženo do mezipaměti a jak dlouho by to mělo být uloženo, než bude požadováno prostřednictvím síťového požadavku.

Hlavička Cache-Control obsahuje následující direktivy:-

  • max-věk
  • no-cache
  • soukromé
  • veřejnost
  • no-store
  • neměnný

Definujte zasílání zpráv ve webových službách RESTful.

Odpověď: Zasílání zpráv ve webových službách RESTful znamená, že klient odešle serveru požadavek HTTP, na který server odpoví HTTP odpovědí. Tato komunikace mezi klientem a serverem se nazývá zasílání zpráv.

Jaký je rozdíl mezi monolitickou architekturou, architekturou SOA a architekturou mikroslužeb?

Odpověď: V monolitické architektuře je vše spravováno na jednom místě. Klientská strana, server i databáze jsou spravovány z jednoho místa. To je důvod, proč je známý jako monolitický, protože slovo „monolit“ označuje jeden blok nebo kámen.

SOA je zkratka pro Service-Oriented Architecture. V této architektuře jsou různé aspekty aplikace spravovány různými službami, které jsou také softwarem. Jedná se tedy o kombinaci více modulů servisního softwaru. Integrace je klíčovou součástí této architektury.

Architektura mikroslužeb je podobná SOA, ale na rozdíl od SOA má několik autonomních softwarových programů, které spolu komunikují pomocí API. Na rozdíl od monolitické architektury je zde vše autonomní a do jisté míry nezávislé.

Jak funguje architektura mikroslužeb?

Odpověď: V architektuře mikroslužeb jsou aplikace rozděleny do menších podjednotek, které jsou na sobě nezávislé a fungují samy, ale komunikují spolu přes dobře definovanou sadu API.

Některé výhody architektury mikroslužeb zahrnují agilitu, flexibilitu, škálovatelnost, nezávislé technologie, opakovaně použitelné služby a snadné nasazení.

Co je CRUD?

Odpověď: CRUD znamená Create, Read, Update, Delete. Toto jsou operace, které lze provádět na konkrétním zdroji. Rozhraní API, které podporuje všechny tyto operace, se nazývá CRUD API. Toto jsou nejzákladnější operace, které může API provádět na prostředku.

Co je ukládání do mezipaměti?

Odpověď: Ukládání do mezipaměti je technika ukládání odpovědi nebo požadavku na klienta nebo na server, aby mohla být později znovu použita.

Odpovědi jsou obecně ukládány do mezipaměti klienta, protože pokud klient zadá stejný požadavek několikrát v krátkém časovém intervalu, pak nemá smysl žádat o odpověď znovu přes síť a plýtvat šířkou pásma.

Jaké je použití @RequestMapping?

Odpověď: Je to anotace v jarním rámci, která se používá k mapování webových požadavků na konkrétní třídy obslužných rutin a/nebo metod obslužných rutin.

Co dělá @PathVariable?

Odpověď: Anotace @PathVariable v rámci jarního rámce se používá k extrahování hodnoty proměnných šablony a přiřazení jejich hodnoty k proměnné metody.

Definujte HttpMessageConverter.

Odpověď: Když je třeba požadavek HTTP (nebo jeho části) převést na typ potřebný jako argument pro metodu obslužné rutiny nebo když hodnotu vrácenou metodou obslužné rutiny je třeba nějakým způsobem převést za účelem vytvoření odpovědi HTTP, HTTP používají se převodníky zpráv.

Odpověď: Některé nástroje, které vám mohou pomoci při testování API, jsou následující:

  • Listonoš
  • Buď v klidu
  • Odpočívej Sharp
  • Katalon
  • ReadyAPI
  • Apigee

Závěrečná slova

V dnešní době se API stala extrémně populární kvůli nástupu internetu. Dalším důvodem, proč jsou REST API populární, je to, že se snadno vyvíjejí a snadno používají.

Pokud se připravujete na pohovor, zvažte výše uvedené otázky týkající se REST API, které mohou být položeny při vašem pohovoru.

Dále můžete zkontrolovat, jak odstranit web pomocí rozhraní Wdzwdz Web Scraping API.