Obsah[Skryť][Šou]
- 1. Čo rozumiete pod pojmom REST?
- 2. Čo rozumiete pod REST API?
- 3. Čo je to vlastne URI?
- 4. Aké sú charakteristiky webových služieb RESTful?
- 5. Aké sú hlavné princípy ODPOČINKU?
- 6. Uveďte metódy HTTP, ktoré REST podporuje.
- 7. Popíšte obmedzenia stanovené konzistentným rozhraním.
- 8. Čo je to vlastne zdroj REST?
- 9. Čo pre teba znamená JAX-RS?
- 10. Čo odlišuje AJAX a REST od seba?
- 11. Môžete uviesť niektoré nevýhody webových služieb RESTful?
- 12. Čo odlišuje techniky PUT a POST od seba?
- 13. Ako testujete webové služby RESTful?
- 14. Opíšte REST API v reálnom svete.
- 15. Ako funguje architektúra mikroservisov?
- 16. Čo je to vlastne ukladanie do vyrovnávacej pamäte?
- 17. Popíšte užitočné zaťaženie.
- 18. Odlíšiť SOAP od REST?
- 19. Je možné použiť bezpečnostný protokol transportnej vrstvy (TLS) s REST?
- 20. Idempotentné metódy: čo sú to? Ako to platí pre svet webových služieb RESTful?
- 21. Aká je funkčnosť základnej autentizácie HTTP?
- 22. Myslíte si, že GraphQL je najlepšou voľbou na vytvorenie architektúry mikroslužieb?
- 23. Aké sú hlavné rozdiely medzi bezpečnými a idempotentnými metódami HTTP?
- 24. Čo znamená JAX-RS API pod RESTful Root Resource Classes?
- 25. Čo je to vlastne Postman a prečo sa používa?
- 26. Ako sú REST API zabezpečené?
- záver
Vývoj REST urobil API neuveriteľne prístupným a zároveň odhalil ich plnú silu a potenciál. Rozhrania REST API sa ľahko vytvárajú a vyrovnávajú vďaka svojej architektúre orientovanej na zdroje.
Okrem toho boli RESTful API v priebehu času predchodcami ďalšieho významného vývoja, ako je cloud computing a dizajn založený na mikroslužbách.
Preto by nemalo byť prekvapením, že vývojári REST API sú dnes žiadaní vzhľadom na to, ako poskytujú podnikom, ktoré využívajú služby RESTful, konkurenčnú výhodu. REST API sú obľúbeným trendom v dizajne.
Mnoho IT firiem chce znalosti REST API vývojári softvéru a pýtajte sa na to na technických pohovoroch.
Tu sú niektoré z najtypickejších otázok na pohovory REST API, ktoré vám pomôžu pripraviť sa na pohovory v rôznych firmách, ak chcete pracovať v oblasti vývoja REST API.
1. Čo rozumiete pod pojmom REST?
REST je architektonická paradigma pre navrhovanie webových aplikácií, ktoré sú založené na Hypertext Transfer Protocol (HTTP).
REST definuje určité štandardy, ktoré musia webové služby spĺňať, aby boli považované za RESTful. Tieto odporúčania zaručujú, že požiadavky a zdroje sa prenášajú rýchlo a efektívne medzi klientom a serverom pomocou štandardizovaných protokolov HTTP.
2. Čo rozumiete pod REST API?
Prepojenie medzi softvérom a softvérom známe ako aplikačné programové rozhranie umožňuje komunikáciu a zdieľanie údajov medzi inak nezávislými programami. Spravodajská webová stránka by napríklad mohla použiť rozhranie Twitter API na automatické objavovanie príslušných tweetov a ich integráciu do novinových článkov.
Rozhranie API, ktoré dodržiava princípy REST, je známe ako REST API, niekedy známe ako RESTful API. V REST API sa s každým údajom narába ako so zdrojom a je mu pridelená odlišná štandardná identita zdroja (URI).
Napríklad Twitter API robí z každého tweetu obnoviteľný zdroj, ktorý je dostupný klientom. Rozhranie Twitter API môžu používatelia použiť na uverejňovanie tweetov a vykonávanie iných úloh na webovej lokalite.
3. Čo je to vlastne URI?
A počítačová sieť zdroj môže byť odkazovaný pomocou URI alebo jednotného identifikátora zdroja. Slúži ako prostriedok na oddelenie jedného zdroja od druhého. Zdroje môžu alebo nemusia byť online.
Vďaka svojej štandardnej štruktúre je URI jednoduché pripojiť sa aj k rôznym typom zdrojov. Umiestnenie alebo názov zdroja je zahrnutý v URI spolu s reťazcom znakov.
URI sa skladá z cesty, schémy, dotazu a ďalších prvkov, ale nezahŕňa protokol.
Pomocou protokolu sa adresy URL (Uniform Resource Locators) používajú na vyhľadávanie zdrojov na internete alebo prístupných prostredníctvom neho.
4. Aké sú charakteristiky webových služieb RESTful?
- Paradigma klient-server je základom služby.
- Služba môže pristupovať k zdrojom pomocou URI.
- Služba využíva protokol HTTP na získavanie údajov/zdrojov, spúšťanie dotazov a vykonávanie ďalších úloh.
- Messaging je názov metódy používanej na komunikáciu medzi klientom a serverom.
- Tieto služby môžu tiež implementovať architektonický vzor REST pomocou služieb SOAP.
- Na zníženie serverových volaní pre rovnaký druh opakovaných požiadaviek využívajú tieto služby aj myšlienku ukladania do vyrovnávacej pamäte.
5. Aké sú hlavné princípy ODPOČINKU?
Rozhrania REST API musia spĺňať päť kritérií:
Oddelenie klient-server: Na komunikáciu medzi klientom a serverom možno použiť iba sériu požiadaviek a odpovedí. Iba klienti a servery môžu odosielať požiadavky a odpovede. Táto priama myšlienka umožňuje obom stranám fungovať nezávisle od seba.
Jednotné rozhranie: Musí existovať jednotný protokol pre všetky pripojenia klient-server. Tento protokol pre REST je HTTP. Pretože každá aplikácia požaduje a odosiela údaje pomocou rovnakého jazyka, konzistentné rozhranie zjednodušuje integráciu.
Bezstavový: Server neukladá žiadne záznamy predchádzajúcich požiadaviek alebo odpovedí v bezstavovej komunikácii. Každá žiadosť a odpoveď poskytujú všetky podrobnosti potrebné na dokončenie výmeny. Bezstavová komunikácia zvyšuje rýchlosť, šetrí pamäť a znižuje stres na serveri. Okrem toho sa vyhnete možnosti zlyhania žiadosti z dôvodu neúplných údajov.
Vrstvený systém: Servery, ktoré sa nachádzajú medzi klientom a serverom API, sa označujú ako vrstvy. Tieto dodatočné servery vykonávajú rôzne služby, ako je zisťovanie spamu a optimalizácia rýchlosti. Vrstvy v REST sú modulárne, čo znamená, že ich možno pridávať a odstraňovať bez ovplyvnenia komunikácie medzi klientom a serverom API.
Uložiteľné do vyrovnávacej pamäte: Klienti môžu ukladať do vyrovnávacej pamäte ľubovoľné prostriedky, aby zvýšili rýchlosť, ak odpovede servera uvádzajú, či je zdroj možné uložiť do vyrovnávacej pamäte.
Kódovanie na požiadanie: V reakcii na to môže rozhranie API prenášať spustiteľný počítačový kód zákazníkom. Klientska aplikácia potom môže spustiť kód na svojom vlastnom backende.
6. Uveďte metódy HTTP, ktoré REST podporuje.
Metódy HTTP, ktoré REST podporuje, sú:
- GET: Táto metóda vyžaduje zdroj na zadanej adrese URL. Telo žiadosti by nemalo byť zahrnuté, pretože bude ignorované. Mohlo by to byť možné uložiť do vyrovnávacej pamäte lokálne alebo na serveri.
- POST: Táto metóda odosiela údaje službe na spracovanie a služba by mala normálne vrátiť nový alebo zmenený zdroj.
- PUT: Zdroj sa aktualizuje na adrese URL požiadavky.
- DELETE: Zdroj sa odstráni na adrese URL požiadavky.
- Možnosti: Identifikuje podporované metódy.
- HEAD: Vrátia sa metadáta adresy URL požiadavky.
7. Popíšte obmedzenia stanovené konzistentným rozhraním.
Na oddelenie klienta od servera je potrebné konzistentné rozhranie.
Na dosiahnutie konzistentného rozhrania sú potrebné nasledujúce štyri obmedzenia:
- Identifikácia zdrojov: Žiadosti klientov musia na identifikáciu zdrojov (URI) využívať štandardné ID zdrojov.
- Manipulácia so zdrojmi pomocou týchto reprezentácií: Klienti majú všetky informácie potrebné na to, aby mohli zmeniť stav prostriedkov, keď dostanú reprezentáciu prostriedkov zo servera.
- Samopopisné správy: Správy obsahujú všetky metadáta a ďalšie informácie potrebné na to, aby im príjemca porozumel.
- Hypermédiá ako aplikačný stavový stroj: Kanálom pre komunikáciu klient-server sú hypermédiá, ako napríklad HTML, a klienti nepotrebujú dokumentáciu špecifickú pre API na pochopenie odpovedí servera.
8. Čo je to vlastne zdroj REST?
Zdroje sú základnými komponentmi webovej služby RESTful v architektúre REST. Zahŕňajú všetky dôležité informácie, ku ktorým klient API potrebuje prístup.
Cez server v systéme klient-server je možné pristupovať k akémukoľvek typu zdrojov, ako je HTML stránka, obrázok, video alebo čokoľvek iné potrebné pre aktivitu API.
Zdroje sú identifikované jednotným identifikátorom zdroja. Text, JSON alebo XML sú všetky prijateľné reprezentácie zdrojov. Vzhľadom na uvedené neexistujú žiadne obmedzenia týkajúce sa formátu reprezentácie.
9. Čo pre teba znamená JAX-RS?
Vytváranie webových služieb RESTful v jazyku Java je jednoduchšie vďaka Java API pre webové služby RESTful, často známemu ako JAX-RS. Vývojári môžu opísať zdroje a operácie, ktoré s nimi možno vykonať, pomocou poskytnutých anotácií.
10. Čo odlišuje AJAX a REST od seba?
Ajax:
- Ajax je skupina technológií, ktoré umožňujú dynamickú aktualizáciu používateľské rozhranie prvky bez nutnosti opätovného načítania stránky.
- Ajax odstraňuje asynchrónnu komunikáciu medzi klientom a serverom.
ODPOČINOK:
- REST vyžaduje komunikáciu medzi serverom a klientom.
- Využitie zdrojov je dôležité pre štruktúru URL a vzor žiadosti/odpovede, ktorý používa REST.
11. Môžete uviesť niektoré nevýhody webových služieb RESTful?
Relácie nemožno udržiavať, pretože služby dodržiavajú pojem bez štátnej príslušnosti. (Klient je zodpovedný za odovzdanie ID relácie počas simulácie relácie.)
Bezpečnostné obmedzenia nie sú pre REST zásadné. Protokoly, ktoré ho používajú, zdedia bezpečnostné opatrenia. Preto je dôležité dávať pozor pri zavádzaní bezpečnostných opatrení, ako je integrácia autentifikácie na báze SSL/TLS.
12. Čo odlišuje techniky PUT a POST od seba?
PUT:
- Neexistuje žiadna vyrovnávacia pamäť pre odpovede PUT.
- Idempotentné (tj viaceré požiadavky prinesú rovnaký výsledok)
- užitočné zaťaženie požiadavky aktualizuje alebo nahrádza cieľový zdroj.
POST:
- idempotent nie (tj viaceré požiadavky prinesú násobky toho istého zdroja)
- Webový server spracuje užitočné zaťaženie požiadavky na základe zamýšľaného zdroja.
- Ak je zahrnutá vhodná hlavička riadenia vyrovnávacej pamäte, odpovede POST možno uložiť do vyrovnávacej pamäte.
13. Ako testujete webové služby RESTful?
RESTful testovaniu webových služieb môže pomôcť množstvo nástrojov vrátane Swagger a Postman. Kontrolu parametrov požiadavky, ako sú parametre dotazu, hlavičky a hlavičky odpovedí, umožňuje množstvo funkcií.
Postman možno použiť na zadávanie požiadaviek na koncové body a zobrazovanie výsledkov. A z týchto odpovedí možno vytvoriť XML a JSON.
Postman a Swagger poskytujú mimoriadne porovnateľné funkcie. Na druhej strane, Swagger ponúka aj možnosti, ako je dokumentácia koncového bodu.
14. Opíšte REST API v reálnom svete.
- Webové stránky cestovania a predaja lístkov môžu využiť načasovanie letov a ceny, ktoré letecké spoločnosti sprístupňujú prostredníctvom rozhraní API.
- Aby ich mohli používať mapové a navigačné aplikácie (ako sú Mapy Google), agentúry verejnej dopravy často sprístupňujú svoje údaje verejnosti v reálnom čase prostredníctvom rozhraní API.
- Aplikácie počasia používajú otvorené API, ktoré si vymieňajú údaje o počasí na zobrazenie informácií o počasí.
- Vývojári môžu pristupovať k mapovým údajom Máp Google prostredníctvom množstva hostovaných rozhraní API. Tieto rozhrania API používajú vývojári na vkladanie dynamických máp do svojich aplikácií a webových stránok.
15. Ako funguje architektúra mikroservisov?
- Žiadosti posielajú rôzni zákazníci pomocou rôznych zariadení.
- Po potvrdení identity klientov poskytovatelia identity poskytnú bezpečnostné tokeny.
- Požiadavky klientov sú riadené bránou API.
- Všetok materiál systému je zachovaný ako statický obsah.
- Nástroj na správu kontroluje rovnováhu služieb na uzloch a prípadné poruchy.
- Objavovanie cesty komunikácie medzi mikroslužbami napomáha objavovanie služby.
- Dátové centrá a proxy servery tvoria rozptýlené sieťové systémy nazývané siete na doručovanie obsahu.
- Vzdialené služby poskytujú prístup k informáciám na diaľku.
16. Čo je to vlastne ukladanie do vyrovnávacej pamäte?
Postup dočasného uchovávania kópie odpovede servera niekde (napríklad v pamäti počítača), aby sa k nej neskôr rýchlejšie pristupovalo, sa nazýva ukladanie do vyrovnávacej pamäte.
Ukladanie do vyrovnávacej pamäte zvyšuje rýchlosť servera pri používaní REST API znížením množstva práce, ktorú musí server vykonať, aby splnil požiadavku. Aplikácie, ktoré využívajú API, bežia rýchlejšie vďaka ukladaniu do vyrovnávacej pamäte, pretože nemusia odosielať novú požiadavku zakaždým, keď potrebujú zdroj.
Pole Cache-Control hlavičky HTTP odpovede obsahuje informácie o tom, ako dlho môže byť prostriedok uchovaný klientom, kým k nemu bude potrebné znova pristupovať.
17. Popíšte užitočné zaťaženie.
Užitočné zaťaženie v REST sa vzťahuje na informácie obsiahnuté v tele odpovede HTTP. Zákazník použil na vyžiadanie predmetných údajov techniku GET.
Dokument obsahujúci text tweetu a všetky potrebné súbory na umiestnenie tweetu na webovú stránku bude zahrnutý do užitočného obsahu, napríklad ak požiadate rozhranie Twitter API o konkrétny tweet. Okrem toho môže byť užitočné zaťaženie zahrnuté do požiadavky HTTP pomocou metódy POST.
18. Rozlišujte MYDLO verzus ODPOČINOK?
- Na rozdiel od SOAP, ktoré dokáže spracovať iba XML, REST umožňuje širšiu škálu formátov zdrojov vrátane XML, textu, HTML, obrázkov, videa a ďalších.
- Keď je bezpečnosť pre online aplikácie rozhodujúca, SOAP je užitočné. REST nemožno použiť, keď sa transakcie musia dokončiť bezpečne, pretože nie je obzvlášť bezpečné.
- Keďže SOAP je iba protokol, REST ho môže používať vo svojich webových službách, ale nie naopak.
- Zatiaľ čo REST je iba architektonický vzor používaný na vývoj webových služieb a dodržiava určité obmedzenia, ako je nastavenie klient-server, stav bez stavu, vyrovnávacia odozva, vrstvené systémy a konzistentné rozhranie, SOAP je protokol, ktorý funguje na konkrétnych štandardoch, ktoré sa musia dôsledne dodržiavať. do.
- Zatiaľ čo REST používa univerzálne identifikátory prostriedkov (URI), SOAP využíva rozhrania služieb na poskytovanie svojich schopností klientskym aplikáciám. REST potrebuje nižšiu šírku pásma ako SOAP, pretože správy SOAP sú náročnejšie na informácie.
19. Je možné použiť bezpečnostný protokol transportnej vrstvy (TLS) s REST?
V skutočnosti môžeme. Komunikácia medzi klientom a serverom REST je šifrovaná pomocou TLS a protokol tiež poskytuje klientom spôsob autentifikácie serverov.
Vzhľadom na to, že ide o náhradu Secure Socket Layer, používa sa na zabezpečenú komunikáciu (SSL). Implementácia webových služieb RESTful je s HTTPS úspešná, pretože efektívne spolupracuje s TLS aj SSL.
REST dedí vlastnosti protokolu, ktorý implementuje, čo je jedna vec, ktorú si tu treba všimnúť. V dôsledku toho sú bezpečnostné ochrany závislé od protokolu, ktorý používa REST.
20. Idempotentné metódy: čo sú to? Ako to platí pre svet webových služieb RESTful?
Keď je identifikátor URI rovnaký, niektoré metódy HTTP v požiadavke majú rovnaký vplyv na server bez ohľadu na to, či sú doručené raz alebo niekoľkokrát. Idempotentné techniky sú známe ako tieto.
Napríklad, bez ohľadu na to, koľkokrát sa spustí URI pomocou metódy GET, server vždy zaznamená rovnaký výsledok. Idempotentné metódy zahŕňajú GET, PUT a PATCH, aby sme vymenovali aspoň niektoré.
Idempotentné metódy HTTP sú niektoré z metód, ktoré využíva RESTful webové aplikácie. Sú potrebné na zaručenie konzistentnosti v aktivitách webových služieb RESTful.
Zákazníci, ktorí používajú REST API, môžu robiť chyby v kóde, ktoré nútia REST API zadávať náhodne opakované požiadavky. Tieto hovory majú potenciál zneužiť zdroje.
21. Aká je funkčnosť základnej autentizácie HTTP?
Pri používaní Basic Authentication ako súčasti API musí užívateľ zadať užívateľské meno a heslo, ktoré sú zreťazené prehliadačom vo forme “username: password” a base64 zakódované.
Pri každej požiadavke HTTP z prehliadača je zakódovaná hodnota doručená ako hodnota pre hlavičku „Authorization“. Keďže prihlasovacie údaje sú iba zakódované, odporúča sa použiť tento formulár pri odosielaní požiadaviek HTTPS, pretože nie sú bezpečné a môže ich ktokoľvek zachytiť, ak sa nepoužívajú bezpečnostné protokoly.
22. Myslíte si, že GraphQL je najlepšou voľbou na vytvorenie architektúry mikroslužieb?
Mikroslužby a GraphQL spolu dokonale ladia, pretože GraphQL chráni vašu architektúru mikroslužieb pred vašimi klientmi v tajnosti.
Z frontendu chcete, aby všetky vaše dáta pochádzali z jedného API, zatiaľ čo z backendu ich chcete rozdeliť na mikroslužby. Najlepšia technika, o ktorej viem, ako dosiahnuť oboje, je použitie GraphQL.
Umožňuje vám rozdeliť váš backend na mikroslužby a zároveň poskytnúť každej aplikácii jediné API a umožniť spojenie údajov z rôznych služieb.
23. Aké sú hlavné rozdiely medzi bezpečnými a idempotentnými metódami HTTP?
Idempotentné metódy prinášajú rovnaký výsledok, keď sú vyvolané raz alebo niekoľkokrát prostredníctvom tej istej požiadavky. Metóda PUT je idempotentná.
Všetky bezpečné spôsoby sú idempotentné, ale nie všetky idempotentné metódy sú bezpečné, pretože bezpečné metódy nemenia zdroje. Napríklad GET je bezpečný, pretože iba získava údaje a nemení zdroj.
Okrem toho je idempotentný, čo znamená, že pri vyvolaní vždy vráti rovnakú odpoveď.
24. Čo znamená JAX-RS API pod RESTful Root Resource Classes?
Java Enterprise Edition poskytuje triedy a rozhrania, ktoré spĺňajú požiadavky JAX-RS API. S pomocou JAX-RS je vytváranie webových služieb Java v architektonickom štýle REST jednoduchšie.
V JAX-RS API sú triedy koreňových prostriedkov len „obyčajné staré java objekty“ alebo POJO. Na implementáciu potrebných webových zdrojov využívajú anotácie JAX-RS.
Buď majú anotácie @path, alebo aspoň jedna z ich metód má anotácie @path. Možno ich zhrnúť ako triedy Java s metódami na prácu s koncovými bodmi API.
25. Čo je to vlastne Postman a prečo sa používa?
Vývojový nástroj API s názvom Postman sa používa na vytváranie, testovanie a úpravu rozhraní API. Tento nástroj môžu vývojári použiť na akúkoľvek funkciu, ktorú vyžadujú pre rozhranie API. Zjednodušuje a uľahčuje prácu vývojárov.
Postman uľahčuje vytváranie rôznych HTTP dotazov, vrátane GET, POST, PUT a PATCH, ukladanie prostredí na neskoršie použitie a konverziu API na kód v mnohých rôznych jazykoch.
Každá fáza cyklu API je s Postmanom jednoduchšia a spolupráca je zjednodušená pre rýchlejší vývoj API.
Okrem toho umožňuje vývojárom spravovať dokumentáciu, špecifikácie, testovacie prípady, procesy a katalógy API.
26. Ako sú REST API zabezpečené?
Keďže rozhrania REST API nepoužívajú také prísne bezpečnostné záruky ako rozhrania SOAP API, nemali by sa pomocou nich odosielať ani získavať citlivé údaje.
Dôveryhodné REST API však naďalej integrujú bezpečnostné ovládacie prvky pre bezpečný a spoľahlivý prenos údajov.
- Autentifikácia a autorizácia: Každá požiadavka na API musí prejsť týmito dvomi kontrolami. Overenie identity klienta prostredníctvom autentifikácie a overenie, že má oprávnenie na prístup k požadovaným prostriedkom prostredníctvom autorizácie, sú dva rôzne procesy.
- Overenie: Predtým, ako rozhranie API udelí prístup k svojim zdrojom, musia byť aj po overení a autorizácii skontrolované požiadavky na možný škodlivý kód. Server by tak bol otvorený injekčnému útoku.
- Overenie: Predtým, ako rozhranie API udelí prístup k svojim zdrojom, musia byť aj po overení a autorizácii skontrolované požiadavky na možný škodlivý kód. Server by tak bol otvorený injekčnému útoku.
- Šifrovanie: Šifrovanie TLS/SSL chráni spojenie medzi klientom a serverom a bráni hackerom zachytiť požiadavky a odpovede.
- Techniky obmedzujúce rýchlosť, ako sú limity a škrtenie, chránia servery pred útokmi hrubou silou, ako je DDoS, ktorých cieľom je ich degradácia alebo pád.
- Žiadne citlivé informácie v URI: URI zdrojov by nemali obsahovať žiadne chránené údaje (ako je meno používateľa, heslo alebo overovací token).
záver
Gratulujem! Niekoľko základných až zložitých otázok na pohovor REST API a ich príslušné riešenia sú teraz na dosah ruky.
Teraz, keď máte dobrú predstavu o tom, ako odpovedať na niektoré z typických otázok v rozhovoroch REST API, môžete pokračovať v odpovedaní na rozhovory. Ďalší krok závisí od vašich cieľov.
návšteva Séria rozhovorov s Hashdorkom, aby sa pripravili na pohovory.
Nechaj odpoveď