Pregled sadržaja[Sakriti][Pokazati]
- 1. Što podrazumijevate pod REST?
- 2. Što mislite pod REST API?
- 3. Što je zapravo URI?
- 4. Koje su karakteristike RESTful web usluga?
- 5. Koji su vodeći principi REST-a?
- 6. Navedite HTTP metode koje REST podržava.
- 7. Opišite ograničenja koja postavlja dosljedno sučelje.
- 8. Što je zapravo REST resurs?
- 9. Što za vas znači JAX-RS?
- 10. Što razlikuje AJAX i REST jedan od drugog?
- 11. Možete li navesti neke nedostatke RESTful web usluga?
- 12. Što razlikuje PUT i POST tehnike jedne od drugih?
- 13. Kako testirate RESTful web usluge?
- 14. Opišite REST API u stvarnom svijetu.
- 15. Kako funkcionira mikroservisna arhitektura?
- 16. Što je točno predmemoriranje?
- 17. Opišite korisni teret.
- 18. Razlikujte SOAP od REST-a?
- 19. Može li se sigurnosni protokol prijenosnog sloja (TLS) koristiti s REST-om?
- 20. Idempotentne metode: što su? Kako se to odnosi na svijet RESTful web usluga?
- 21. Koja je funkcija HTTP osnovne provjere autentičnosti?
- 22. Mislite li da je GraphQL najbolji izbor za kreiranje arhitekture mikroservisa?
- 23. Koje su glavne razlike između sigurnih i idempotentnih HTTP metoda?
- 24. Što JAX-RS API podrazumijeva pod RESTful klasama korijenskih resursa?
- 25. Što je zapravo Postman i zašto se koristi?
- 26. Kako su REST API-ji sigurni?
- Zaključak
Evolucija REST-a učinila je API-je nevjerojatno dostupnima, a istovremeno je otkrila njihovu punu snagu i potencijal. REST API-je je lako stvoriti i predmemorirati zbog njihove arhitekture orijentirane na resurse.
Osim toga, kroz vrijeme su RESTful API-ji bili preteča drugih značajnih razvoja poput računalstva u oblaku i dizajna temeljenog na mikrouslugama.
Stoga ne treba čuditi da su REST API programeri danas traženi s obzirom na to kako tvrtkama koje koriste RESTful usluge pružaju konkurentsku prednost. REST API-ji su popularan trend dizajna.
Mnoge IT tvrtke žele znanje REST API-ja programeri softvera i pitajte o tome u tehničkim razgovorima.
Ovdje su neka od najtipičnijih pitanja za intervju za REST API koja će vam pomoći da budete spremni za intervjue u raznim tvrtkama ako želite raditi u području razvoja REST API-ja.
1. Što podrazumijevate pod REST?
REST je arhitektonska paradigma za dizajniranje web aplikacija koje se temelje na protokolu za prijenos hiperteksta (HTTP).
REST definira određene standarde koje web usluge moraju zadovoljiti da bi se smatrale RESTful. Ove preporuke jamče da se zahtjevi i resursi prenose brzo i učinkovito između klijenta i poslužitelja pomoću standardiziranih HTTP protokola.
2. Što mislite pod REST API?
Veza softver-softver poznata kao sučelje za programiranje aplikacija omogućuje komunikaciju i dijeljenje podataka između inače neovisnih programa. Na primjer, web stranica s vijestima mogla bi koristiti Twitter API za automatsko otkrivanje relevantnih tweetova i njihovu integraciju u vijesti.
API koji se pridržava REST principa poznat je kao REST API, ponekad poznat i kao RESTful API. U REST API-ju svakim se dijelom podataka rukuje kao s resursom i daje mu se poseban standardni identitet resursa (URI).
Na primjer, Twitter API čini svaki tweet izvorom koji je dostupan klijentima. Twitter API korisnici mogu koristiti za objavljivanje tweetova i izvršavanje drugih zadataka web stranice.
3. Što je zapravo URI?
A računalna mreža resurs se može uputiti pomoću URI-ja ili jedinstvenog identifikatora resursa. Služi kao sredstvo za odvajanje jednog resursa od drugog. Izvori mogu, ali ne moraju biti na mreži.
Zbog svoje standardne strukture, URI-ji olakšavaju povezivanje čak i s različitim vrstama resursa. Lokacija ili naziv resursa uključen je u URI zajedno s nizom znakova.
URI se sastoji od staze, sheme, upita i drugih elemenata, ali ne uključuje protokol.
Korištenjem protokola, URL-ovi (Uniform Resource Locators) koriste se za pronalaženje resursa na internetu ili dostupnih putem njega.
4. Koje su karakteristike RESTful web usluga?
- Paradigma klijent-poslužitelj je temelj usluge.
- Usluga može pristupiti resursima pomoću URI-ja.
- Usluga koristi HTTP protokol za prikupljanje podataka/resursa, pokretanje upita i obavljanje drugih zadataka.
- Slanje poruka je naziv metode koja se koristi za komunikaciju između klijenta i poslužitelja.
- Ove usluge također mogu implementirati REST arhitektonski obrazac koristeći SOAP usluge.
- Kako bi se smanjili pozivi poslužitelja za istu vrstu zahtjeva koji se ponavljaju, ove usluge također koriste ideju predmemoriranja.
5. Koji su vodeći principi REST-a?
REST API-ji moraju zadovoljiti pet kriterija:
Odvajanje klijenta i poslužitelja: Samo se niz zahtjeva i odgovora može koristiti za komunikaciju između klijenta i poslužitelja. Samo klijenti i poslužitelji mogu slati zahtjeve i odgovore. Ova jednostavna ideja omogućuje objema stranama da funkcioniraju neovisno jedna o drugoj.
Jedinstveno sučelje: mora postojati jedinstveni protokol za sve veze klijent-poslužitelj. Ovaj protokol za REST je HTTP. Budući da svaka aplikacija traži i šalje podatke koristeći isti jezik, dosljedno sučelje čini integracije jednostavnijima.
Bez statusa: poslužitelj ne sprema nikakve zapise prethodnih zahtjeva ili odgovora u komunikaciji bez statusa. Svaki zahtjev i odgovor sadrže sve pojedinosti potrebne za dovršetak razmjene. Komunikacija bez statusa povećava brzinu, štedi memoriju i smanjuje stres na poslužitelju. Osim toga, izbjegava se mogućnost neuspjeha zahtjeva zbog nepotpunih podataka.
Slojeviti sustav: poslužitelji koji se nalaze između klijenta i API poslužitelja nazivaju se slojevima. Ovi dodatni poslužitelji obavljaju razne usluge, poput otkrivanja neželjene pošte i optimizacije brzine. Slojevi u REST-u su modularni, što znači da se mogu dodavati i brisati bez utjecaja na komunikaciju između klijenta i API poslužitelja.
Mogućnost predmemoriranja: Klijenti mogu predmemorirati sve resurse kako bi povećali brzinu ako odgovori poslužitelja pokazuju može li se resurs predmemorirati ili ne.
Kodiranje na zahtjev: Kao odgovor, API može prenijeti izvršni računalni kod korisnicima. Klijentska aplikacija tada može pokrenuti kod na vlastitoj stražnjoj strani.
6. Navedite HTTP metode koje REST podržava.
HTTP metode koje REST podržava su:
- GET: Ova metoda traži resurs na navedenom URL-u. Tijelo zahtjeva ne bi trebalo biti uključeno jer će biti zanemareno. Moglo bi ga biti moguće predmemorirati lokalno ili na poslužitelju.
- POST: Ova metoda šalje podatke servisu na obradu, a servis bi normalno trebao vratiti novi ili promijenjeni resurs.
- PUT: Resurs se ažurira na URL-u zahtjeva.
- DELETE: Resurs se briše na URL-u zahtjeva.
- Opcije: Identificira podržane metode.
- HEAD: Vraćaju se metapodaci URL-a zahtjeva.
7. Opišite ograničenja koja postavlja dosljedno sučelje.
Kako bi se klijent odvojio od poslužitelja, potrebno je dosljedno sučelje.
Za postizanje dosljednog sučelja potrebna su sljedeća četiri ograničenja:
- Identifikacija resursa: Zahtjevi klijenata moraju koristiti standardne ID-ove resursa za identifikaciju resursa (URI-jevi)
- Manipulacija resursima pomoću ovih prikaza: Klijenti imaju sve informacije potrebne da mogu promijeniti stanje resursa kada dobiju prikaz resursa od poslužitelja.
- Samoopisne poruke: Poruke uključuju sve metapodatke i druge informacije potrebne da bi ih primatelj mogao razumjeti.
- Hipermedija kao mehanizam stanja aplikacije: Kanal za komunikaciju klijent-poslužitelj je hipermedija, kao što je HTML, a klijentima nije potrebna dokumentacija specifična za API da bi razumjeli odgovore poslužitelja.
8. Što je zapravo REST resurs?
Resursi su temeljne komponente RESTful web usluge u REST arhitekturi. Oni uključuju sve ključne informacije kojima API klijent treba pristupiti.
Bilo kojoj vrsti resursa, poput HTML stranice, slike, videa ili bilo čega drugog što je potrebno za API aktivnost, može se pristupiti putem poslužitelja u sustavu klijent-poslužitelj.
Resursi su identificirani jedinstvenim identifikatorom izvora. Tekst, JSON ili XML prihvatljivi su prikazi resursa. Navodeći to, nema ograničenja u pogledu formata reprezentacije.
9. Što za vas znači JAX-RS?
Jednostavnije je kreirati RESTful web usluge u Javi zahvaljujući Java API-ju za RESTful web usluge, često poznatom kao JAX-RS. Programeri mogu opisati resurse i operacije koje se na njima mogu izvršiti pomoću priloženih komentara.
10. Što razlikuje AJAX i REST jedan od drugog?
Ajax:
- Ajax je skupina tehnologija koja omogućuje dinamičko ažuriranje korisničko sučelje elemenata bez ponovnog učitavanja stranice.
- Ajax uklanja asinkronu komunikaciju između klijenta i poslužitelja.
ODMOR:
- REST zahtijeva komunikaciju između poslužitelja i klijenta.
- Korištenje resursa važno je za strukturu URL-a i obrazac zahtjeva/odgovora koji koristi REST.
11. Možete li navesti neke nedostatke RESTful web usluga?
Sjednice se ne mogu održavati budući da se usluge pridržavaju pojma apatridije. (Klijent je odgovoran za prosljeđivanje ID-a sesije tijekom cijele simulacije sesije.)
Sigurnosna ograničenja nisu temeljna za REST. Protokoli koji ga koriste nasljeđuju sigurnosne mjere opreza. Stoga je važno biti oprezan pri postavljanju sigurnosnih mjera, kao što je integracija provjere autentičnosti temeljene na SSL/TLS.
12. Što razlikuje PUT i POST tehnike jedne od drugih?
STAVITI:
- Nema predmemorije za PUT odgovore.
- Idempotentan (tj. više zahtjeva će dati isti rezultat)
- korisni teret zahtjeva ažurira ili zamjenjuje ciljni resurs.
POST:
- idempotentno ne (tj. višestruki zahtjevi će dati višestruke iste resurse)
- Web poslužitelj obrađuje korisni teret zahtjeva na temelju namjeravanog resursa.
- Ako je uključeno odgovarajuće zaglavlje za kontrolu predmemorije, POST odgovori se mogu pohraniti u predmemoriju.
13. Kako testirate RESTful web usluge?
RESTful testiranje web usluga može biti potpomognuto brojnim alatima, uključujući Swagger i Postman. Provjera parametara zahtjeva poput parametara upita, zaglavlja i zaglavlja odgovora omogućena je obiljem značajki potonjih.
Postman se može koristiti za slanje zahtjeva krajnjim točkama i prikaz rezultata. Iz ovih odgovora mogu se stvoriti XML i JSON.
Postman i Swagger pružaju izuzetno usporedive funkcije. S druge strane, Swagger također nudi mogućnosti poput dokumentacije krajnjih točaka.
14. Opišite REST API u stvarnom svijetu.
- Web-mjesta za putovanja i prodaju karata mogu iskoristiti raspored letova i cijene koje zrakoplovne tvrtke stavljaju na raspolaganje putem API-ja.
- Kako bi ih aplikacije za mapiranje i navigaciju (poput Google Maps) mogle koristiti, agencije za javni prijevoz često svoje podatke čine javno dostupnima u stvarnom vremenu putem API-ja.
- Aplikacije za vremensku prognozu koriste otvorene API-je koji razmjenjuju vremenske podatke za prikaz informacija o vremenu.
- Programeri mogu pristupiti kartografskim podacima Google karata putem brojnih hostiranih API-ja. Programeri koriste ove API-je za ugradnju dinamičkih karata u svoje aplikacije i web stranice.
15. Kako funkcionira mikroservisna arhitektura?
- Zahtjeve šalju različiti kupci koristeći različite uređaje.
- Nakon potvrde identiteta klijenata, davatelji identiteta daju sigurnosne tokene.
- Zahtjevima klijenata upravlja API Gateway.
- Sav materijal sustava čuva se kao statički sadržaj.
- Alat za upravljanje provjerava ravnotežu usluga na čvorovima i eventualne greške.
- Otkrivanje puta komunikacije između mikroservisa pomaže otkrivanje servisa.
- Podatkovni centri i proxy poslužitelji čine disperzirane mrežne sustave koji se nazivaju mrežama za isporuku sadržaja.
- Udaljene usluge pružaju pristup informacijama s udaljenosti.
16. Što je točno predmemoriranje?
Praksa privremenog čuvanja kopije odgovora poslužitelja negdje (kao što je memorija računala) kako bi mu se kasnije brže pristupilo poznata je kao predmemorija.
Predmemoriranje povećava brzinu poslužitelja pri korištenju REST API-ja smanjujući količinu posla koji poslužitelj mora obaviti kako bi zadovoljio zahtjev. Aplikacije koje koriste API pokreću se brže zahvaljujući predmemoriji jer ne moraju slati novi zahtjev svaki put kada im je potreban resurs.
Polje Cache-Control zaglavlja HTTP odgovora sadrži informacije o tome koliko dugo klijent može predmemorirati resurs prije nego što mu se ponovno treba pristupiti.
17. Opišite korisni teret.
Korisni teret u REST-u odnosi se na informacije sadržane u tijelu HTTP odgovora. Kupac je upotrijebio tehniku GET kako bi zatražio dotične podatke.
Dokument koji sadrži tekst tweeta i sve potrebne datoteke za postavljanje tweeta na web mjesto bit će uključen u sadržaj, na primjer, ako od Twitter API-ja zatražite određeni tweet. Dodatno, sadržaj se može uključiti u HTTP zahtjev pomoću metode POST.
18. Razlikovati SAPUN VS ODMOR?
- Za razliku od SOAP-a, koji može rukovati samo XML-om, REST omogućuje širi raspon formata resursa, uključujući XML, tekst, HTML, slike, video itd.
- Kada je sigurnost ključna za online aplikacije, SOAP je od pomoći. REST se ne može koristiti kada se transakcije moraju dovršiti sigurno jer nije osobito siguran.
- Budući da je SOAP samo protokol, REST ga može koristiti u svojim web uslugama, ali ne i obrnuto.
- Dok je REST samo arhitektonski obrazac koji se koristi za razvoj web usluga i pridržava se određenih ograničenja kao što su postavke klijent-poslužitelj, stanje bez statusa, odgovor koji se može predmemorirati, slojeviti sustavi i dosljedno sučelje, SOAP je protokol koji radi na određenim standardima koji se moraju rigorozno pridržavati do.
- Dok REST koristi univerzalne identifikatore resursa (URI), SOAP koristi servisna sučelja za pružanje svojih mogućnosti klijentskim aplikacijama. REST ima nižu potrebu za propusnošću od SOAP-a budući da su SOAP poruke opterećenije informacijama.
19. Može li se sigurnosni protokol prijenosnog sloja (TLS) koristiti s REST-om?
Zapravo, možemo. Komunikacija REST klijenta i poslužitelja šifrirana je putem TLS-a, a protokol također klijentima daje način autentifikacije poslužitelja.
Zbog činjenice da je zamjena za Secure Socket Layer, koristi se za sigurnu komunikaciju (SSL). Implementacija RESTful web usluga uspješna je s HTTPS-om jer učinkovito surađuje s TLS-om i SSL-om.
REST nasljeđuje karakteristike protokola koji implementira, što je jedna stvar koju ovdje treba napomenuti. Kao rezultat toga, sigurnosne zaštite ovise o protokolu koji koristi REST.
20. Idempotentne metode: što su? Kako se to odnosi na svijet RESTful web usluga?
Kada je URI isti, neke HTTP metode u zahtjevu imaju isti učinak na poslužitelj bez obzira na to jesu li isporučene jednom ili nekoliko puta. Idempotentne tehnike su ono po čemu su one poznate.
Na primjer, bez obzira koliko se puta URI pomoću metode GET pokrene, poslužitelj će uvijek imati isti rezultat. Idempotentne metode uključuju GET, PUT i PATCH, da spomenemo samo neke.
Idempotentne HTTP metode neke su od onih koje koristi RESTful web aplikacije. Oni su neophodni kako bi se zajamčila dosljednost u aktivnostima RESTful web usluga.
Korisnici koji koriste REST API-je mogu napraviti pogreške u kodu koje prisiljavaju REST API da slučajno postavlja ponovljene zahtjeve. Ovi pozivi mogu zloupotrijebiti resurse.
21. Koja je funkcija HTTP osnovne provjere autentičnosti?
Kada koristite osnovnu provjeru autentičnosti kao dio API-ja, korisnik mora poslati korisničko ime i lozinku, koje preglednik spaja u obliku "korisničko ime: lozinka" i base64 kodirani.
Kod svakog HTTP zahtjeva iz preglednika, kodirana vrijednost isporučuje se kao vrijednost za zaglavlje "Autorizacija". Budući da su vjerodajnice samo kodirane, preporučuje se korištenje ovog obrasca prilikom slanja HTTPS zahtjeva jer nisu sigurni i svatko ih može presresti ako se ne koriste sigurnosni protokoli.
22. Mislite li da je GraphQL najbolji izbor za kreiranje arhitekture mikroservisa?
Mikroservisi i GraphQL savršeno se slažu jer GraphQL čuva vašu mikroservisnu arhitekturu tajnom od vaših klijenata.
S prednje strane želite da svi vaši podaci dolaze iz jednog API-ja, dok ih sa stražnje strane želite podijeliti u mikroservise. Najbolja tehnika za koju znam da se postiže oboje je korištenje GraphQL-a.
Omogućuje vam da svoju pozadinu podijelite na mikrousluge, a pritom svakoj aplikaciji daje jedan API i omogućuje spajanje podataka iz različitih usluga.
23. Koje su glavne razlike između sigurnih i idempotentnih HTTP metoda?
Idempotentne metode daju isti rezultat kada se pozovu jednom ili nekoliko puta kroz isti zahtjev. Metoda PUT je idempotentna.
Svi sigurni načini su idempotentni, ali nisu sve idempotentne metode sigurne jer sigurne metode ne mijenjaju resurse. Na primjer, GET je siguran jer samo dohvaća podatke i ne mijenja resurs.
Osim toga, idempotentan je, što znači da će uvijek vratiti isti odgovor kada se pozove.
24. Što JAX-RS API podrazumijeva pod RESTful klasama korijenskih resursa?
Java Enterprise Edition pruža klase i sučelja koja se pridržavaju JAX-RS API zahtjeva. Uz pomoć JAX-RS, stvaranje Java web usluga u REST arhitektonskom stilu je olakšano.
U JAX-RS API-ju, klase korijenskih resursa samo su "obični stari java objekti" ili POJO. Kako bi implementirali potrebne web resurse, koriste JAX-RS komentare.
Ili imaju oznake @path ili barem jedna od njihovih metoda ima oznake @path. Mogu se sažeti kao Java klase s metodama za rad s API krajnjim točkama.
25. Što je zapravo Postman i zašto se koristi?
Alat za razvoj API-ja pod nazivom Postman koristi se za stvaranje, testiranje i modificiranje API-ja. Programeri mogu koristiti ovaj alat za bilo koju značajku koja im je potrebna za API. Pojednostavljuje i olakšava rad programera.
Postman olakšava izradu raznih HTTP upita, uključujući GET, POST, PUT i PATCH, spremanje okruženja za kasniju upotrebu i pretvaranje API-ja u kod na više različitih jezika.
Svaka faza ciklusa API-ja pojednostavljena je uz Postman, a suradnja je usmjerena na brži razvoj API-ja.
Osim toga, programerima omogućuje upravljanje dokumentacijom, specifikacijama, testnim slučajevima, procesima i API katalozima.
26. Kako su REST API-ji sigurni?
Budući da REST API-ji ne koriste tako rigorozne sigurnosne mjere kao SOAP API-ji, osjetljivi podaci ne bi se trebali slati ili dohvaćati pomoću njih.
Međutim, pouzdani REST API-ji nastavljaju integrirati sigurnosne kontrole za siguran i pouzdan prijenos podataka.
- Autentikacija i autorizacija: Svaki zahtjev upućen API-ju mora proći ove dvije provjere. Provjera identiteta klijenta kroz provjeru autentičnosti i provjera da imaju ovlasti za pristup traženim resursima putem autorizacije dva su različita procesa.
- Provjera valjanosti: prije nego što API odobri pristup svojim resursima, zahtjevi se ipak moraju provjeriti na moguće štetne kodove nakon provjere autentičnosti i autorizacije. Poslužitelj bi stoga bio otvoren za napad injekcijom.
- Provjera valjanosti: prije nego što API odobri pristup svojim resursima, zahtjevi se ipak moraju provjeriti na moguće štetne kodove nakon provjere autentičnosti i autorizacije. Poslužitelj bi stoga bio otvoren za napad injekcijom.
- Enkripcija: TLS/SSL enkripcija štiti vezu između klijenta i poslužitelja i sprječava hakere da presretnu zahtjeve i odgovore.
- Tehnike ograničavanja brzine, kao što su ograničenja i prigušivanje, štite poslužitelje od brutalnih napada poput DDoS-a kojima je cilj degradirati ih ili srušiti.
- Bez osjetljivih informacija u URI-jima: URI-ji resursa ne smiju sadržavati nikakve zaštićene podatke (kao što su korisničko ime, lozinka ili token za provjeru autentičnosti).
Zaključak
Čestitamo! Nekoliko osnovnih do složenih REST API pitanja za intervju i njihova rješenja sada su vam na dohvat ruke.
Sada kada imate dobar koncept kako odgovoriti na neka od tipičnih REST API pitanja za intervjue, možete nastaviti s odgovaranjem na intervjue. Sljedeći korak ovisi o vašim ciljevima.
Posjetiti Serija intervjua s Hashdorkom da se pripremi za intervjue.
Ostavi odgovor