Sadržaj[Sakrij][Prikaži]
- 1. Šta podrazumijevate pod REST?
- 2. Šta mislite pod REST API-jem?
- 3. Šta je tačno 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 konzistentan interfejs.
- 8. Šta je tačno REST resurs?
- 9. Šta za vas znači JAX-RS?
- 10. Šta razlikuje AJAX i REST jedan od drugog?
- 11. Možete li navesti neke nedostatke RESTful web servisa?
- 12. Šta razlikuje PUT i POST tehnike jedna od druge?
- 13. Kako testirate RESTful web usluge?
- 14. Opišite REST API u stvarnom svijetu.
- 15. Kako radi mikroservisna arhitektura?
- 16. Šta je tačno keširanje?
- 17. Opišite nosivost.
- 18. Razlikovati SOAP i REST?
- 19. Može li se sigurnosni protokol transportnog sloja (TLS) koristiti sa REST-om?
- 20. Idempotentne metode: šta su to? Kako se to odnosi na svijet RESTful web servisa?
- 21. Koja je funkcionalnost HTTP Basic Authentication?
- 22. Da li mislite da je GraphQL najbolji izbor za kreiranje mikroservisne arhitekture?
- 23. Koje su glavne razlike između sigurnih i idempotentnih HTTP metoda?
- 24. Šta JAX-RS API podrazumijeva po RESTful osnovnim klasama resursa?
- 25. Šta je zapravo Postman i zašto se koristi?
- 26. Kako se REST API-ji čuvaju sigurnim?
- zaključak
REST-ova evolucija je učinila API-je nevjerovatno dostupnim, a istovremeno je otkrila njihovu punu snagu i potencijal. REST API-je je lako kreirati i keširati zbog njihove arhitekture orijentirane na resurse.
Pored toga, tokom vremena, RESTful API-ji su bili preteča drugih značajnih razvoja poput računarstva u oblaku i dizajna zasnovanog na mikroservisima.
Stoga ne bi trebalo biti iznenađenje da su programeri REST API-ja danas traženi s obzirom na to kako kompanijama koje koriste RESTful usluge pružaju konkurentsku prednost. REST API-ji su popularan trend dizajna.
Mnoge IT firme žele znanje o REST API-ju programeri softvera i pitajte o tome na tehničkim intervjuima.
Evo nekih od najtipičnijih pitanja za REST API intervju koja će vam pomoći da budete spremni za intervjue u raznim firmama ako želite da radite u polju razvoja REST API-ja.
1. Šta podrazumijevate pod REST?
REST je arhitektonska paradigma za dizajniranje web-baziranih aplikacija koje su zasnovane na Hypertext Transfer Protocol (HTTP).
REST definira određene standarde koje web usluge moraju ispuniti da bi se smatrale RESTful. Ove preporuke garantuju da se zahtevi i resursi prenose brzo i efikasno između klijenta i servera koristeći standardizovane HTTP protokole.
2. Šta mislite pod REST API-jem?
Veza između softvera i softvera poznata kao sučelje za programiranje aplikacija omogućava komunikaciju i razmjenu podataka između inače nezavisnih programa. Na primjer, web stranica za vijesti može koristiti Twitter API za automatsko otkrivanje relevantnih tvitova i njihovo 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, svaki dio podataka se rukuje kao resurs i daje poseban standardni identitet resursa (URI).
Na primjer, Twitter API svaki tweet čini izvorom koji je dostupan klijentima. Twitter API korisnici mogu koristiti za objavljivanje tvitova i obavljanje drugih zadataka na web stranici.
3. Šta je tačno URI?
A računarska mreža resurs se može pozvati pomoću URI-ja ili uniformnog identifikatora resursa. Služi kao sredstvo za odvajanje jednog resursa od drugog. Izvori mogu ili ne moraju biti na mreži.
Zbog svoje standardne strukture, URI-ji olakšavaju povezivanje čak i na različite vrste resursa. Lokacija ili ime resursa uključeno je u URI zajedno sa nizom znakova.
URI se sastoji od putanje, šeme, upita i drugih elemenata, ali ne uključuje protokol.
Koristeći protokol, URL-ovi (Uniform Resource Locators) se koriste za pronalaženje resursa na internetu ili dostupnih preko njega.
4. Koje su karakteristike RESTful Web usluga?
- Paradigma klijent-server je temelj usluge.
- Usluga može pristupiti resursima pomoću URI-ja.
- Usluga koristi HTTP protokol za preuzimanje podataka/resursa, pokretanje upita i obavljanje drugih zadataka.
- Razmjena poruka je naziv metode koja se koristi za komunikaciju između klijenta i servera.
- Ovi servisi također mogu implementirati REST arhitektonski obrazac koristeći SOAP usluge.
- Kako bi smanjili pozive servera za istu vrstu zahtjeva koji se ponavljaju, ove usluge također koriste ideju keširanja.
5. Koji su vodeći principi REST-a?
REST API-ji moraju ispuniti pet kriterijuma:
Odvajanje klijent-server: Za komunikaciju između klijenta i servera može se koristiti samo niz zahtjeva i odgovora. Samo klijenti i serveri mogu slati zahtjeve, odnosno odgovore. Ova jasna ideja omogućava obema stranama da funkcionišu nezavisno jedna od druge.
Jedinstveni interfejs: Mora postojati jedinstveni protokol za sve klijent-server konekcije. Ovaj protokol za REST je HTTP. Budući da svaka aplikacija traži i šalje podatke koristeći isti jezik, konzistentno sučelje čini integracije jednostavnijim.
Bez državljanstva: Server ne pohranjuje nikakve zapise prethodnih zahtjeva ili odgovora u komunikaciji bez državljanstva. Svaki zahtjev i odgovor sadrže sve detalje potrebne za završetak razmjene. Komunikacija bez stanja povećava brzinu, štedi memoriju i smanjuje stres na serveru. Osim toga, izbjegava mogućnost neuspjeha zahtjeva zbog nepotpunih podataka.
Slojeviti sistem: Serveri koji se nalaze između klijenta i API servera nazivaju se slojevima. Ovi dodatni serveri obavljaju razne usluge, kao što su otkrivanje neželjene pošte i optimizacija brzine. Slojevi u REST-u su modularni, što znači da se mogu dodavati i brisati bez uticaja na komunikaciju između klijenta i API servera.
Keširanje: Klijenti mogu keširati sve resurse kako bi povećali brzinu ako odgovori servera pokazuju da li se resurs može keširati ili ne.
Kodiranje na zahtjev: Kao odgovor, API može prenijeti izvršni kompjuterski kod klijentima. Klijentska aplikacija tada može pokrenuti kod na vlastitom stražnjem dijelu.
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 biti moguće keširati ga lokalno ili na serveru.
- POST: Ova metoda šalje podatke servisu na obradu, a usluga bi normalno trebala vratiti novi ili promijenjeni resurs.
- PUT: Resurs se ažurira na URL-u zahtjeva.
- DELETE: Resurs se briše na URL-u zahtjeva.
- Opcije: identifikuje podržane metode.
- HEAD: Vraćaju se metapodaci URL-a zahtjeva.
7. Opišite ograničenja koja postavlja konzistentan interfejs.
Da bi se klijent odvojio od servera, potreban je konzistentan interfejs.
Za postizanje konzistentnog sučelja potrebna su sljedeća četiri ograničenja:
- Identifikacija resursa: Zahtjevi klijenta moraju koristiti standardne ID-ove resursa za identifikaciju resursa (URI)
- Manipulacija resursima pomoću ovih reprezentacija: Klijenti imaju sve informacije potrebne da mogu promijeniti stanje resursa kada dobiju reprezentaciju resursa od poslužitelja.
- Samoopisne poruke: Poruke uključuju sve metapodatke i druge informacije potrebne da bi ih primalac razumio.
- Hipermedija kao mehanizam stanja aplikacije: Kanal za komunikaciju klijent-server je hipermedija, kao što je HTML, i klijentima nije potrebna dokumentacija specifična za API da bi shvatili odgovore servera.
8. Šta je tačno REST resurs?
Resursi su osnovne komponente RESTful web servisa u REST arhitekturi. Oni uključuju sve ključne informacije kojima API klijent treba da pristupi.
Bilo kojoj vrsti resursa, kao što je HTML stranica, slika, video ili bilo šta drugo potrebno za API aktivnost, može se pristupiti preko servera u sistemu klijent-server.
Resursi se identificiraju jedinstvenim identifikatorom resursa. Tekst, JSON ili XML su prihvatljivi prikazi resursa. Navodeći to, nema ograničenja u pogledu formata reprezentacije.
9. Šta za vas znači JAX-RS?
Jednostavnije je kreirati RESTful web servise u Javi zahvaljujući Java API-ju za RESTful web usluge, često poznatom kao JAX-RS. Programeri mogu opisati resurse i operacije koje se mogu izvršiti na njima koristeći priložene napomene.
10. Šta razlikuje AJAX i REST jedan od drugog?
Ajax:
- Ajax je grupa tehnologija koja omogućava dinamičko ažuriranje korisnički interfejs elemenata bez ponovnog učitavanja stranice.
- Ajax uklanja asinkronu komunikaciju između klijenta i servera.
ODMOR:
- REST zahtijeva komunikaciju između servera i klijenta.
- Korištenje resursa je važno za URL strukturu i obrazac zahtjeva/odgovora koji koristi REST.
11. Možete li navesti neke nedostatke RESTful web servisa?
Sjednice se ne mogu održavati jer se službe pridržavaju pojma apatridije. (Klijent je odgovoran za prosleđivanje ID-a sesije tokom simulacije sesije.)
Sigurnosna ograničenja nisu fundamentalna za REST. Protokoli koji ga koriste nasljeđuju sigurnosne mjere. Stoga je važno biti oprezan prilikom postavljanja sigurnosnih mjera, kao što je integracija autentifikacije zasnovane na SSL/TLS.
12. Šta razlikuje PUT i POST tehnike jedna od druge?
STAVITI:
- Ne postoji keš 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 server obrađuje korisni teret zahtjeva na osnovu predviđenog resursa.
- Ako je uključeno odgovarajuće zaglavlje kontrole predmemorije, POST odgovori se mogu keširati.
13. Kako testirate RESTful web usluge?
RESTful testiranje web servisa može biti potpomognuto brojnim alatima, uključujući Swagger i Postman. Provjera parametara zahtjeva kao što su parametri upita, zaglavlja i zaglavlja odgovora omogućena je obiljem funkcija potonjeg.
Postman se može koristiti za upućivanje zahtjeva krajnjim tačkama i prikazivanje rezultata. I XML i JSON se mogu kreirati iz ovih odgovora.
I Postman i Swagger pružaju izuzetno uporedive funkcionalnosti. S druge strane, Swagger također nudi mogućnosti kao što je dokumentacija krajnje tačke.
14. Opišite REST API u stvarnom svijetu.
- Web lokacije za putovanja i prodaju karata mogu iskoristiti vrijeme letova i cijene koje avio kompanije stavljaju na raspolaganje putem API-ja.
- Kako bi ih aplikacije za mapiranje i navigaciju (kao što je Google Maps) koristile, agencije za javni prijevoz često svoje podatke stavljaju na raspolaganje u realnom vremenu putem API-ja.
- Vremenske aplikacije koriste otvorene API-je koji razmjenjuju podatke o vremenu za prikaz informacija o vremenu.
- Programeri mogu pristupiti podacima mapiranja Google mapa putem brojnih hostiranih API-ja. Ove API-je koriste programeri za ugrađivanje dinamičkih mapa u svoje aplikacije i web stranice.
15. Kako radi mikroservisna arhitektura?
- Zahtjeve šalju različiti kupci koristeći različite uređaje.
- Nakon potvrde identiteta klijenata, provajderi identiteta daju sigurnosne tokene.
- Klijentskim zahtjevima upravlja API Gateway.
- Sav materijal sistema je sačuvan kao statički sadržaj.
- Alat za upravljanje provjerava ravnotežu usluga na čvorovima i sve greške.
- Otkrivanje puta komunikacije između mikroservisa potpomognuto je otkrivanjem servisa.
- Data centri i proxy serveri čine disperzovane mrežne sisteme koji se nazivaju mreže za isporuku sadržaja.
- Daljinski servisi omogućavaju pristup informacijama sa udaljenosti.
16. Šta je tačno keširanje?
Praksa privremenog čuvanja kopije serverskog odgovora negdje (kao što je memorija računara) kako bi se kasnije brže pristupilo poznata je kao keširanje.
Keširanje povećava brzinu servera kada koristite REST API-je tako što smanjuje količinu posla koji server mora obaviti da bi zadovoljio zahtjev. Aplikacije koje koriste API rade brže zahvaljujući keširanju jer ne moraju podnositi novi zahtjev svaki put kada im zatreba resurs.
Polje Cache-Control u zaglavlju HTTP odgovora sadrži informacije o tome koliko dugo klijent može keširati resurs prije nego što mu treba ponovo pristupiti.
17. Opišite nosivost.
Korisno opterećenje u REST-u odnosi se na informacije sadržane u tijelu HTTP odgovora. Kupac je koristio GET tehniku za traženje predmetnih podataka.
Dokument koji sadrži tekst tvita i sve potrebne datoteke za postavljanje tvita na web stranicu bit će uključen u korisni sadržaj, na primjer, ako od Twitter API-ja zatražite određeni tweet. Dodatno, korisni teret može biti uključen u HTTP zahtjev pomoću POST metode.
18. Razlikujte SOAP Vs REST?
- Za razliku od SOAP-a, koji može da obrađuje samo XML, REST omogućava širi spektar formata resursa, uključujući XML, tekst, HTML, slike, video i još mnogo toga.
- Kada je sigurnost ključna za online aplikacije, SOAP je od pomoći. REST se ne može koristiti kada transakcije moraju biti sigurno završene jer nije posebno siguran.
- Pošto je SOAP samo protokol, REST ga može koristiti u svojim web servisima, 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 podešavanje klijent-server, status bez državljanstva, keširani odgovor, slojeviti sistemi i konzistentno sučelje, SOAP je protokol koji radi na određenim standardima koji se moraju rigorozno pridržavati to.
- Dok REST koristi univerzalne identifikatore resursa (URI), SOAP koristi servisna sučelja kako bi pružio svoje mogućnosti klijentskim aplikacijama. REST ima manju potrebu za propusnošću od SOAP-a jer su SOAP poruke bogatije informacijama.
19. Može li se sigurnosni protokol transportnog sloja (TLS) koristiti sa REST-om?
U stvari, možemo. Komunikacija REST klijenta i servera je šifrovana preko TLS-a, a protokol klijentima takođe daje način da autentifikuju servere.
Zbog činjenice da je zamjena za Secure Socket Layer, koristi se za sigurnu komunikaciju (SSL). Implementacija RESTful web usluga je uspješna sa HTTPS-om jer efikasno sarađuje i sa TLS-om i sa SSL-om.
REST nasljeđuje karakteristike protokola koji implementira, što je jedna stvar koju ovdje treba primijetiti. Kao rezultat toga, sigurnosna zaštita se oslanja na protokol koji REST koristi.
20. Idempotentne metode: šta su to? Kako se to odnosi na svijet RESTful web servisa?
Kada je URI isti, neke HTTP metode u zahtjevu imaju isti utjecaj na server bez obzira da li se isporučuju jednom ili nekoliko puta. Idempotentne tehnike su ono što ih nazivamo.
Na primjer, bez obzira koliko puta je pokrenut URI koji koristi metodu GET, server će uvijek imati isti rezultat. Idempotentne metode uključuju GET, PUT i PATCH, da spomenemo samo neke.
Idempotentne HTTP metode su neke od onih koje koristi RESTful web aplikacije. Oni su neophodni da bi se garantovala doslednost u aktivnostima RESTful web servisa.
Korisnici koji koriste REST API-je mogu napraviti greške u kodu koje prisiljavaju REST API da napravi slučajno ponovljene zahtjeve. Ovi pozivi imaju potencijal da zloupotrebe resurse.
21. Koja je funkcionalnost HTTP Basic Authentication?
Kada koristi osnovnu autentifikaciju kao dio API-ja, korisnik mora dostaviti korisničko ime i lozinku, koje pretraživač spaja u obliku „korisničko ime: lozinka“ i kodirano base64.
Na svaki HTTP zahtjev iz pretraživača, kodirana vrijednost se isporučuje kao vrijednost za zaglavlje “Authorization”. Budući da su vjerodajnice samo kodirane, preporučuje se korištenje ovog obrasca prilikom slanja HTTPS zahtjeva jer oni nisu sigurni i može ih presresti bilo tko ako se ne koriste sigurnosni protokoli.
22. Da li mislite da je GraphQL najbolji izbor za kreiranje mikroservisne arhitekture?
Mikroservis i GraphQL se savršeno slažu jer GraphQL čuva vašu arhitekturu mikroservisa u tajnosti od vaših klijenata.
Iz prednjeg kraja, želite da svi vaši podaci dolaze iz jednog API-ja, dok sa stražnje strane želite da ih podijelite na mikroservise. Najbolja tehnika koje sam svjestan da postignem oboje je korištenje GraphQL-a.
Omogućava vam da svoju pozadinu podijelite na mikroservise, a da pritom svakoj aplikaciji date jedan API i omogućite 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 preuzima podatke i ne mijenja resurs.
Osim toga, idempotentan je, što znači da će uvijek vratiti isti odgovor kada se pozove.
24. Šta JAX-RS API podrazumijeva po RESTful osnovnim klasama resursa?
Java Enterprise Edition pruža klase i interfejse koji se pridržavaju JAX-RS API zahtjeva. Uz pomoć JAX-RS, kreiranje Java web servisa u REST arhitektonskom stilu je olakšano.
U JAX-RS API-ju, osnovne klase resursa su samo “obični stari java objekti” ili POJO. Da bi implementirali neophodne web resurse, koriste JAX-RS anotacije.
Oni ili imaju @path napomene ili barem jedna od njihovih metoda ima @path napomene. One se mogu sažeti kao Java klase sa metodama za rad sa krajnjim tačkama API-ja.
25. Šta je zapravo Postman i zašto se koristi?
API razvojni alat pod nazivom Postman koristi se za kreiranje, testiranje i modificiranje API-ja. Ovaj alat mogu koristiti programeri 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, čuvanje okruženja za kasniju upotrebu i pretvaranje API-ja u kod na više različitih jezika.
Svaka faza API ciklusa je pojednostavljena sa Postman-om, a saradnja je pojednostavljena radi bržeg razvoja API-ja.
Osim toga, omogućava programerima da upravljaju dokumentacijom, specifikacijama, test slučajevima, procesima i API katalozima.
26. Kako se REST API-ji čuvaju sigurnim?
Budući da REST API-ji ne koriste rigorozne sigurnosne mjere kao SOAP API-ji, osjetljive podatke ne bi trebalo slati ili preuzimati pomoću njih.
Međutim, pouzdani REST API-ji nastavljaju integrirati sigurnosne kontrole za siguran i pouzdan prijenos podataka.
- Autentifikacija i autorizacija: Svaki zahtjev upućen API-ju mora proći ove dvije provjere. Provjera identiteta klijenta putem provjere autentičnosti i potvrda da oni imaju ovlaštenje za pristup traženim resursima putem autorizacije su dva različita procesa.
- Provjera valjanosti: Prije nego što API odobri pristup svojim resursima, zahtjevi se i dalje moraju provjeriti na mogući štetan kod nakon provjere autentičnosti i autorizacije. Server bi tako bio otvoren za napad ubrizgavanjem.
- Provjera valjanosti: Prije nego što API odobri pristup svojim resursima, zahtjevi se i dalje moraju provjeriti na mogući štetan kod nakon provjere autentičnosti i autorizacije. Server bi tako bio otvoren za napad ubrizgavanjem.
- Šifrovanje: TLS/SSL enkripcija štiti vezu između klijenta i servera i sprečava hakere da presretnu zahteve i odgovore.
- Tehnike ograničavanja brzine, kao što su ograničenja i prigušivanje, štite servere od napada grubom silom kao što je DDoS koji imaju za cilj da ih degradiraju ili sruše.
- Bez osjetljivih informacija u URI-ovima: URI-ovi resursa ne bi trebali sadržavati nikakve zaštićene podatke (kao što su korisničko ime, lozinka ili token za autentifikaciju).
zaključak
Čestitamo! Nekoliko osnovnih do složenih REST API pitanja za intervju i njihova odgovarajuća rješenja sada su vam na dohvat ruke.
Sada kada imate dobar koncept kako da odgovorite na neka od tipičnih pitanja za REST API intervju, možete nastaviti da odgovarate na intervjue. Sljedeći korak ovisi o vašim ciljevima.
posjeta Interview Series sa Hashdorkom da se pripremi za intervjue.
Ostavite odgovor