Sisukord[Peida][Näita]
- 1. Mida sa mõistad REST all?
- 2. Mida sa mõtled REST API all?
- 3. Mis täpselt on URI?
- 4. Millised on RESTfuli veebiteenuste omadused?
- 5. Millised on RESTi juhtpõhimõtted?
- 6. Mainige HTTP-meetodeid, mida REST toetab.
- 7. Kirjeldage järjepideva liidese seatud piiranguid.
- 8. Mis täpselt on REST-ressurss?
- 9. Mida JAX-RS sinu jaoks tähendab?
- 10. Mis eristab AJAXi ja RESTi üksteisest?
- 11. Kas saate loetleda mõned RESTfuli veebiteenuste puudused?
- 12. Mis eristab PUT- ja POST-tehnikaid üksteisest?
- 13. Kuidas testite RESTfuli veebiteenuseid?
- 14. Kirjeldage REST API-d reaalses maailmas.
- 15. Kuidas mikroteenuste arhitektuur töötab?
- 16. Mis täpselt on vahemällu salvestamine?
- 17. Kirjeldage kasulikku koormust.
- 18. Eristada SOAP Vs REST?
- 19. Kas transpordikihi turvaprotokolli (TLS) saab kasutada koos RESTiga?
- 20. Idempotentsed meetodid: mis need on? Kuidas see RESTfuli veebiteenuste maailmas kehtib?
- 21. Mis on HTTP põhiautentimise funktsionaalsus?
- 22. Kas GraphQL on teie arvates parim valik mikroteenuste arhitektuuri loomiseks?
- 23. Millised on peamised erinevused turvalise ja idempotentse HTTP-meetodi vahel?
- 24. Mida tähendab JAX-RS API RESTful Root Resource Classes?
- 25. Mis täpselt on Postimees ja miks seda kasutatakse?
- 26. Kuidas REST API-sid kaitstakse?
- Järeldus
RESTi areng on muutnud API-d uskumatult juurdepääsetavaks, paljastades ühtlasi nende täieliku tugevuse ja potentsiaali. REST API-sid on nende ressursile orienteeritud arhitektuuri tõttu lihtne luua ja vahemällu salvestada.
Lisaks olid RESTful API-d läbi aegade teiste oluliste arenduste, nagu pilvandmetöötlus ja mikroteenusepõhine disain, eelkäijad.
Seetõttu ei tohiks olla üllatav, et REST API arendajad on tänapäeval nõutud, arvestades seda, kuidas nad pakuvad RESTfuli teenuseid kasutavatele ettevõtetele konkurentsieelist. REST API-d on populaarne disainitrend.
Paljud IT-ettevõtted soovivad REST API teadmisi tarkvaraarendajad ja küsige selle kohta tehnilistel intervjuudel.
Siin on mõned kõige tüüpilisemad REST API intervjuuküsimused, mis aitavad teil olla valmis intervjuudeks erinevates ettevõtetes, kui soovite töötada REST API arendusvaldkonnas.
1. Mida sa mõistad REST all?
REST on arhitektuurne paradigma veebipõhiste rakenduste kujundamiseks, mis põhinevad hüperteksti edastusprotokollil (HTTP).
REST määratleb teatud standardid, millele veebiteenused peavad vastama, et neid saaks lugeda RESTful. Need soovitused tagavad, et päringuid ja ressursse edastatakse kiiresti ja tõhusalt kliendi ja serveri vahel standardiseeritud HTTP-protokolle kasutades.
2. Mida sa mõtled REST API all?
Tarkvara-tarkvara link, mida nimetatakse rakenduste programmeerimisliideseks, võimaldab sidet ja andmete jagamist muidu sõltumatute programmide vahel. Näiteks võib uudiste veebisait kasutada Twitteri API-t, et leida automaatselt asjakohaseid säutse ja integreerida need uudislugudesse.
API, mis järgib REST-i põhimõtteid, on tuntud kui REST API, mõnikord tuntud ka kui RESTful API. REST API-s käsitletakse iga andmeosa ressursina ja neile antakse eraldiseisev standardressursi identiteet (URI).
Näiteks muudab Twitteri API iga säutsu allalaaditavaks ressursiks, mis on klientidele kättesaadav. Kasutajad saavad Twitteri API-d kasutada säutsude postitamiseks ja muude veebisaidi ülesannete täitmiseks.
3. Mis täpselt on URI?
A arvutivõrk ressursile saab viidata URI või ühtse ressursiidentifikaatori abil. See on vahend ühe ressursi eraldamiseks teisest. Allikad võivad olla võrgus, kuid ei pruugi olla.
Tänu oma standardstruktuurile on URI-de abil lihtne isegi erinevat tüüpi ressurssidega ühenduse luua. Ressursi asukoht või nimi sisaldub URI-des koos tähemärkide jadaga.
URI koosneb teest, skeemist, päringust ja muudest elementidest, kuid ei sisalda protokolli.
Protokolli kasutades kasutatakse Internetist või selle kaudu juurdepääsetavate ressursside leidmiseks URL-e (Uniform Resource Locators).
4. Millised on RESTfuli veebiteenuste omadused?
- Kliendi-serveri paradigma on teenuse aluseks.
- Teenus pääseb ressurssidele juurde URI-de kaudu.
- Teenus kasutab andmete/ressursside hankimiseks, päringute käitamiseks ja muude toimingute tegemiseks HTTP-protokolli.
- Sõnumside on kliendi ja serveri vahelise suhtluse meetodi nimi.
- Need teenused võivad SOAP-teenuste abil rakendada ka REST-i arhitektuurimustrit.
- Serverikõnede vähendamiseks sama tüüpi korduvate päringute jaoks kasutavad need teenused ka vahemällu salvestamise ideed.
5. Millised on RESTi juhtpõhimõtted?
REST API-d peavad vastama viiele kriteeriumile:
Kliendi ja serveri lahtisidumine: kliendi ja serveri vaheliseks suhtlemiseks saab kasutada ainult päringute ja vastuste jada. Ainult kliendid ja serverid saavad saata vastavalt päringuid ja vastuseid. See otsene idee võimaldab mõlemal osapoolel üksteisest sõltumatult toimida.
Ühtne liides: kõigi kliendi-serveri ühenduste jaoks peab olema ühtne protokoll. See REST-i protokoll on HTTP. Kuna iga rakendus taotleb ja saadab andmeid samas keeles, muudab ühtne liides integreerimise lihtsamaks.
Kodanikuta: server ei salvesta olekuta side varasemate päringute või vastuste kirjeid. Iga päring ja vastus sisaldab kõiki vahetuse lõpuleviimiseks vajalikke üksikasju. Seisukohata side suurendab kiirust, säästab mälu ja vähendab serveri pinget. Lisaks väldib see võimalust, et taotlus ebaõnnestub mittetäielike andmete tõttu.
Kihiline süsteem: servereid, mis asuvad kliendi ja API serveri vahel, nimetatakse kihtideks. Need lisaserverid pakuvad mitmesuguseid teenuseid, näiteks tuvastavad rämpsposti ja optimeerivad kiirust. REST-i kihid on modulaarsed, mis tähendab, et neid saab lisada ja kustutada, ilma et see mõjutaks sidet kliendi ja API-serveri vahel.
Vahemällu salvestatav: kliendid saavad kiiruse suurendamiseks vahemällu salvestada mis tahes ressursse, kui serveri vastused näitavad, kas ressurss on vahemällu salvestatav või mitte.
Nõudmisel kodeerimine: vastusena saab API klientidele käivitatava arvutikoodi edastada. Klientrakendus saab seejärel koodi käivitada oma tagaküljel.
6. Mainige HTTP-meetodeid, mida REST toetab.
HTTP-meetodid, mida REST toetab, on järgmised:
- GET: see meetod küsib ressurssi määratud URL-il. Päringu keha ei tohiks lisada, kuna seda eiratakse. Võib olla võimalik vahemällu salvestada kohapeal või serveris.
- POST: see meetod saadab andmed teenusele töötlemiseks ja teenus peaks tavaliselt tagastama uue või muudetud ressursi.
- PUT: ressurssi värskendatakse päringu URL-is.
- KUSTUTA: ressurss kustutatakse päringu URL-ilt.
- Valikud: see tuvastab toetatud meetodid.
- HEAD: päringu URL-i metaandmed tagastatakse.
7. Kirjeldage järjepideva liidese seatud piiranguid.
Kliendi serverist eraldamiseks on vaja ühtset liidest.
Ühtse liidese saavutamiseks on vaja järgmisi nelja piirangut:
- Ressursi tuvastamine: kliendipäringud peavad ressursside (URI) tuvastamiseks kasutama standardseid ressursi ID-sid.
- Ressursiga manipuleerimine nende esituste abil: klientidel on kogu teave, mis on vajalik ressursi oleku muutmiseks, kui nad saavad serverist ressursi esituse.
- Ennast kirjeldavad sõnumid: sõnumid sisaldavad kõiki metaandmeid ja muud teavet, mis on vajalik, et saaja saaks neist aru saada.
- Hüpermeedia kui rakenduse olekumootor: kliendi-serveri suhtluse kanal on hüpermeedia, näiteks HTML, ja kliendid ei vaja serveri vastuste mõistmiseks API-spetsiifilist dokumentatsiooni.
8. Mis täpselt on REST-ressurss?
Ressursid on REST-arhitektuuris RESTful veebiteenuse põhikomponendid. Need sisaldavad kogu olulist teavet, millele API klient peab juurde pääsema.
Klient-server süsteemis oleva serveri kaudu pääseb juurde mis tahes tüüpi ressurssidele, nagu HTML-leht, pilt, video või muu API tegevuse jaoks vajalik.
Ressursid identifitseeritakse ühtse ressursiidentifikaatoriga. Tekst, JSON või XML on kõik vastuvõetavad ressursside esitused. Olles seda öelnud, ei ole esituse vormingule piiranguid.
9. Mida JAX-RS sinu jaoks tähendab?
RESTful veebiteenuste loomine Javas on lihtsam tänu Java API-le RESTful veebiteenuste jaoks, mida sageli tuntakse JAX-RS-ina. Arendajad saavad pakutud märkuste abil kirjeldada ressursse ja toiminguid, mida nendega saab teha.
10. Mis eristab AJAXi ja RESTi üksteisest?
Ajax:
- Ajax on tehnoloogiate rühm, mis võimaldab dünaamilist värskendamist kasutajaliides elemente, ilma et peaksite lehte uuesti laadima.
- Ajax eemaldab asünkroonse suhtluse kliendi ja serveri vahel.
PUHASTA:
- REST nõuab sidet serveri ja kliendi vahel.
- Ressursside kasutamine on oluline URL-i struktuuri ja REST-i kasutatava päringu/vastuse mustri jaoks.
11. Kas saate loetleda mõned RESTfuli veebiteenuste puudused?
Seansse ei saa pidada, kuna teenistused järgivad kodakondsusetuse mõistet. (Klient vastutab seansi ID edastamise eest kogu seansi simulatsiooni jooksul.)
Turvapiirangud ei ole RESTi jaoks põhilised. Seda kasutavad protokollid pärivad turvameetmed. Seetõttu on turvameetmete, näiteks SSL/TLS-põhiste autentimiste integreerimisel, ettevaatlik olla.
12. Mis eristab PUT- ja POST-tehnikaid üksteisest?
PANGE:
- PUT-vastuste jaoks pole vahemälu.
- Idempotentne (st mitu päringut annavad sama tulemuse)
- päringu kasulik koormus värskendab või asendab sihtressurssi.
POST:
- idempotent mitte (st mitu päringut annavad sama ressursi mitu korda)
- Veebiserver töötleb päringu kasulikku koormust kavandatud ressursi alusel.
- Kui kaasas on sobiv vahemälu juhtimise päis, saab POST-vastuseid vahemällu salvestada.
13. Kuidas testite RESTfuli veebiteenuseid?
RESTful veebiteenuste testimist võivad aidata mitmed tööriistad, sealhulgas Swagger ja Postman. Päringu parameetrite, nagu päringu parameetrid, päised ja vastuse päised, kontrollimise teeb võimalikuks viimase funktsioonide rohkus.
Postmani saab kasutada lõpp-punktidele päringute tegemiseks ja tulemuste kuvamiseks. Ja nendest vastustest saab luua XML-i ja JSON-i.
Postman ja Swagger pakuvad mõlemad äärmiselt võrreldavaid funktsioone. Teisest küljest pakub Swagger ka selliseid funktsioone nagu lõpp-punkti dokumentatsioon.
14. Kirjeldage REST API-d reaalses maailmas.
- Reisi- ja piletimüügiveebisaidid võivad kasutada lennuaegu ja hindu, mille lennufirmad API-de kaudu kättesaadavaks teevad.
- Selleks, et kaardistamis- ja navigeerimisrakendused (nt Google Maps) neid saaksid kasutada, teevad ühistranspordiagentuurid oma andmed sageli API-de kaudu reaalajas avalikult kättesaadavaks.
- Ilmarakendused kasutavad avatud API-sid, mis vahetavad ilmateabe kuvamiseks ilmaandmeid.
- Arendajad pääsevad Google Mapsi kaardistamisandmetele juurde mitme selle hostitud API kaudu. Neid API-sid kasutavad arendajad dünaamiliste kaartide manustamiseks oma rakendustesse ja veebisaitidele.
15. Kuidas mikroteenuste arhitektuur töötab?
- Päringuid saadavad erinevad kliendid erinevate seadmete abil.
- Pärast klientide identiteedi kinnitamist annavad identiteedi pakkujad turvamärgid.
- Kliendi taotlusi haldab API Gateway.
- Kogu süsteemi materjal säilitatakse staatilise sisuna.
- Haldustööriist kontrollib teenuste tasakaalu sõlmedes ja tõrkeid.
- Mikroteenuste vahelise suhtlustee avastamisele aitab kaasa teenuse avastamine.
- Andmekeskused ja puhverserverid moodustavad hajutatud võrgusüsteemid, mida nimetatakse sisuedastusvõrkudeks.
- Kaugteenused pakuvad teabele juurdepääsu kauguselt.
16. Mis täpselt on vahemällu salvestamine?
Seda, et serveri vastuse koopiat hoitakse ajutiselt kuskil (näiteks arvutimällu), et sellele hiljem kiiremini juurde pääseda, nimetatakse vahemällu salvestamiseks.
Vahemällu salvestamine suurendab serveri kiirust REST API-de kasutamisel, vähendades tööd, mida server peab taotluse rahuldamiseks tegema. API-d kasutavad rakendused töötavad kiiremini tänu vahemällu salvestamisele, kuna nad ei pea iga kord uut päringut esitama, kui ressurssi vajavad.
HTTP vastuse päise väli Cache-Control sisaldab teavet selle kohta, kui kaua saab klient ressurssi vahemällu salvestada, enne kui sellele uuesti juurde pääseda.
17. Kirjeldage kasulikku koormust.
REST-i kasulik koormus viitab HTTP-vastuse põhiosas sisalduvale teabele. Klient kasutas kõnealuste andmete küsimiseks GET-tehnikat.
Dokument, mis sisaldab säutsu teksti ja kõiki vajalikke faile säutsu veebisaidile paigutamiseks, lisatakse kasulikku koormusse, näiteks kui küsite Twitteri API-lt konkreetset säutsu. Lisaks saab kasuliku koormuse POST-meetodi abil HTTP päringusse kaasata.
18. Eristage SEEP Vs PUHKUS?
- Erinevalt SOAP-ist, mis saab hakkama ainult XML-iga, võimaldab REST laiemat valikut ressursivorminguid, sealhulgas XML-i, teksti, HTML-i, pilte, videoid ja palju muud.
- Kui turvalisus on võrgurakenduste jaoks ülioluline, on SOAP abiks. REST-i ei saa kasutada, kui tehingud tuleb sooritada turvaliselt, kuna see pole eriti turvaline.
- Kuna SOAP on ainult protokoll, saab REST seda kasutada oma veebiteenustes, kuid mitte vastupidi.
- Kui REST on ainult arhitektuurne muster, mida kasutatakse veebiteenuste arendamiseks ja mis järgib teatud piiranguid, nagu klient-serveri seadistus, kodakondsusetus, vahemällu salvestatav vastus, kihilised süsteemid ja järjepidev liides, siis SOAP on protokoll, mis toimib teatud standardite alusel, mida tuleb rangelt järgida. juurde.
- Kui REST kasutab universaalseid ressursiidentifikaatoreid (URI), siis SOAP kasutab kliendirakendustele oma võimaluste pakkumiseks teenuseliideseid. REST-il on väiksem ribalaiuse vajadus kui SOAP-il, kuna SOAP-sõnumid on teaberohkemad.
19. Kas transpordikihi turvaprotokolli (TLS) saab kasutada koos RESTiga?
Tegelikult me saame. REST-kliendi ja serveri suhtlus on krüpteeritud TLS-i kaudu ning protokoll annab klientidele võimaluse ka servereid autentida.
Kuna tegemist on Secure Socket Layeri asendusega, kasutatakse seda turvaliseks suhtluseks (SSL). RESTfuli veebiteenuste juurutamine on HTTPS-iga edukas, kuna see teeb tõhusat koostööd nii TLS-i kui ka SSL-iga.
REST pärib rakendatava protokolli omadused, mida siinkohal tasub tähele panna. Selle tulemusena sõltuvad turbekaitsed protokollist, mida REST kasutab.
20. Idempotentsed meetodid: mis need on? Kuidas see RESTfuli veebiteenuste maailmas kehtib?
Kui URI on sama, on mõnel päringu HTTP-meetodil serverile sama mõju, olenemata sellest, kas need edastatakse üks või mitu korda. Idempotentsed tehnikad on need, mida neid nimetatakse.
Näiteks olenemata sellest, mitu korda GET-meetodit kasutavat URI-d käivitatakse, kogeb server alati sama tulemust. Idempotentsed meetodid hõlmavad GET, PUT ja PATCH, kui nimetada vaid mõnda.
Idempotentsed HTTP-meetodid on mõned neist, mida RESTful kasutab veebirakendused. Need on vajalikud RESTfuli veebiteenuste tegevuse järjepidevuse tagamiseks.
REST API-sid kasutavad kliendid võivad teha koodivigu, mis sunnivad REST API-d kogemata korduvaid taotlusi esitama. Need kõned võivad ressursse väärkasutada.
21. Mis on HTTP põhiautentimise funktsionaalsus?
Põhiautentimise kasutamisel API-de osana peab kasutaja esitama kasutajanime ja parooli, mis on brauseri poolt ühendatud kujul “kasutajanimi: parool” ja base64-kodeeringuga.
Iga brauseri HTTP-päringu korral edastatakse kodeeritud väärtus päise „Authorization” väärtusena. Kuna mandaadid on lihtsalt kodeeritud, on soovitatav kasutada seda vormi HTTPS-i päringute saatmisel, kuna need ei ole turvalised ja kui turvaprotokolle ei kasutata, võivad kõik need pealt kuulata.
22. Kas GraphQL on teie arvates parim valik mikroteenuste arhitektuuri loomiseks?
Mikroteenused ja GraphQL sobivad ideaalselt, sest GraphQL hoiab teie mikroteenuste arhitektuuri teie klientide eest saladuses.
Esiosast soovite, et kõik teie andmed pärineksid ühest API-st, samas kui tagaotsas soovite need jagada mikroteenusteks. Parim tehnika, mida ma tean mõlema saavutamiseks, on GraphQL-i kasutamine.
See võimaldab teil jagada oma taustaprogrammi mikroteenusteks, andes samas igale rakendusele ühe API ja võimaldades erinevate teenuste andmete ühendamist.
23. Millised on peamised erinevused turvalise ja idempotentse HTTP-meetodi vahel?
Idempotentsed meetodid annavad sama tulemuse, kui neid kutsutakse üks või mitu korda sama päringu kaudu. PUT-meetod on idempotentne.
Kõik ohutud viisid on idempotentsed, kuid mitte kõik idempotentsed meetodid pole ohutud, kuna ohutud meetodid ei muuda ressursse. Näiteks GET on turvaline, kuna see lihtsalt hangib andmeid ega muuda ressurssi.
Lisaks on see idempotentne, mis tähendab, et see tagastab kutsumisel alati sama vastuse.
24. Mida tähendab JAX-RS API RESTful Root Resource Classes?
Java Enterprise Edition pakub klasse ja liideseid, mis vastavad JAX-RS API nõuetele. JAX-RSi abil on Java veebiteenuste loomine REST arhitektuuristiilis lihtsam.
JAX-RS API-s on juurressursside klassid lihtsalt "tavalised vanad Java-objektid" või POJO. Vajalike veebiressursside rakendamiseks kasutavad nad JAX-RS annotatsioone.
Neil on kas @path annotatsioonid või vähemalt ühel nende meetodil on @path annotatsioonid. Neid saab kokku võtta Java-klassidena koos API lõpp-punktide käsitlemise meetoditega.
25. Mis täpselt on Postimees ja miks seda kasutatakse?
API-de arendustööriista nimega Postman kasutatakse API-de loomiseks, testimiseks ja muutmiseks. Seda tööriista saavad arendajad kasutada mis tahes funktsiooni jaoks, mida nad API jaoks vajavad. See lihtsustab ja hõlbustab arendajate tööd.
Postman teeb lihtsaks mitmesuguste HTTP-päringute tegemise, sealhulgas GET, POST, PUT ja PATCH, keskkondade salvestamise hilisemaks kasutamiseks ja API-de teisendamise mitmes erinevas keeles koodiks.
API tsükli iga etapp on Postmaniga lihtsamaks tehtud ja koostöö on sujuvamaks muutnud API kiiremaks arendamiseks.
Lisaks võimaldab see arendajatel hallata dokumentatsiooni, spetsifikatsioone, testjuhtumeid, protsesse ja API katalooge.
26. Kuidas REST API-sid kaitstakse?
Kuna REST API-d ei kasuta nii rangeid turvameetmeid kui SOAP API-d, ei tohiks tundlikke andmeid nende abil saata ega tuua.
Usaldusväärsed REST API-liidesed integreerivad aga jätkuvalt turvakontrolli, et andmeedastus oleks ohutu ja töökindel.
- Autentimine ja autoriseerimine: iga API-le tehtud päring peab läbima need kaks kontrolli. Kliendi identiteedi kontrollimine autentimise kaudu ja selle kinnitamine, et tal on autoriseerimise kaudu juurdepääs taotletud ressurssidele, on kaks erinevat protsessi.
- Valideerimine: enne kui API annab juurdepääsu oma ressurssidele, tuleb pärast autentimist ja autoriseerimist taotlusi siiski kontrollida võimaliku kahjuliku koodi suhtes. Server oleks seega avatud süstimisrünnakule.
- Valideerimine: enne kui API annab juurdepääsu oma ressurssidele, tuleb pärast autentimist ja autoriseerimist taotlusi siiski kontrollida võimaliku kahjuliku koodi suhtes. Server oleks seega avatud süstimisrünnakule.
- Krüpteerimine: TLS/SSL-krüptimine kaitseb ühendust kliendi ja serveri vahel ning hoiab häkkeritel päringuid ja vastuseid pealtkuulamast.
- Kiiruse piiramise tehnikad, nagu piirangud ja piirangud, kaitsevad servereid jõhkrate rünnakute eest, nagu DDoS, mille eesmärk on neid halvendada või krahhida.
- URI-des pole tundlikku teavet: ressursside URI-d ei tohiks sisaldada kaitstud andmeid (nt kasutajanimi, parool või autentimisluba).
Järeldus
Palju õnne! Mitmed põhilised kuni keerulised REST API intervjuuküsimused ja nende vastavad lahendused on nüüd teie käeulatuses.
Nüüd, kui teil on hea idee, kuidas vastata mõnele tüüpilisele REST API intervjuuküsimusele, võite jätkata intervjuudele vastamisega. Järgmine samm sõltub teie eesmärkidest.
visiit Intervjuude sari koos Hashdorkiga, et valmistuda intervjuudeks.
Jäta vastus