Turinys[Slėpti][Rodyti]
- 1. Ką jūs suprantate iš REST?
- 2. Ką reiškia REST API?
- 3. Kas tiksliai yra URI?
- 4. Kokios yra RESTful Web Services savybės?
- 5. Kokie yra pagrindiniai REST principai?
- 6. Paminėkite HTTP metodus, kuriuos palaiko REST.
- 7. Apibūdinkite nuoseklios sąsajos taikomus apribojimus.
- 8. Kas tiksliai yra REST resursas?
- 9. Ką tau reiškia JAX-RS?
- 10. Kuo AJAX ir REST skiriasi vienas nuo kito?
- 11. Ar galite išvardyti keletą RESTful interneto paslaugų trūkumų?
- 12. Kuo PUT ir POST metodai skiriasi vienas nuo kito?
- 13. Kaip testuojate RESTful žiniatinklio paslaugas?
- 14. Apibūdinkite REST API realiame pasaulyje.
- 15. Kaip veikia „Microservice“ architektūra?
- 16. Kas tiksliai yra talpyklos kaupimas?
- 17. Apibūdinkite naudingą apkrovą.
- 18. Atskirti SOAP nuo REST?
- 19. Ar transporto lygmens saugos protokolą (TLS) galima naudoti su REST?
- 20. Idempotentiniai metodai: kas tai yra? Kaip tai taikoma RESTful interneto paslaugų pasauliui?
- 21. Kokios yra HTTP pagrindinės autentifikavimo funkcijos?
- 22. Ar manote, kad GraphQL yra geriausias pasirinkimas kuriant mikro paslaugų architektūrą?
- 23. Kokie pagrindiniai skirtumai tarp saugaus ir idempotento HTTP metodų?
- 24. Ką JAX-RS API reiškia RESTful Root Resource Classes?
- 25. Kas iš tikrųjų yra paštininkas ir kodėl jis naudojamas?
- 26. Kaip saugomos REST API?
- Išvada
REST evoliucija padarė API neįtikėtinai prieinamas, kartu atskleidžiant visą jų jėgą ir potencialą. Dėl į išteklius orientuotos architektūros REST API lengva sukurti ir išsaugoti talpykloje.
Be to, visą laiką RESTful API buvo kitų svarbių pokyčių, tokių kaip debesų kompiuterija ir mikropaslaugomis pagrįstas dizainas, pirmtakai.
Todėl nenuostabu, kad REST API kūrėjai šiandien yra paklausūs, atsižvelgiant į tai, kaip jie teikia RESTful paslaugas teikiančioms įmonėms konkurencinį pranašumą. REST API yra populiari dizaino tendencija.
Daugelis IT įmonių nori REST API žinių programinės įrangos kūrėjai ir paklauskite apie tai techniniuose pokalbiuose.
Štai keletas tipiškiausių REST API interviu klausimų, kurie padės pasiruošti pokalbiams įvairiose įmonėse, jei norite dirbti REST API kūrimo srityje.
1. Ką jūs suprantate iš REST?
REST yra architektūrinė paradigma, skirta kurti žiniatinklio programas, pagrįstas hiperteksto perdavimo protokolu (HTTP).
REST apibrėžia tam tikrus standartus, kuriuos žiniatinklio paslaugos turi atitikti, kad būtų laikomos RESTful. Šios rekomendacijos garantuoja, kad užklausos ir ištekliai būtų greitai ir efektyviai perduodami tarp kliento ir serverio naudojant standartizuotus HTTP protokolus.
2. Ką reiškia REST API?
Programinės įrangos ryšys, žinomas kaip taikomųjų programų programavimo sąsaja, leidžia bendrauti ir dalytis duomenimis tarp kitaip nepriklausomų programų. Pavyzdžiui, naujienų svetainė gali naudoti „Twitter“ API, kad automatiškai atrastų atitinkamus tviterius ir integruotų juos į naujienų istorijas.
API, kuri laikosi REST principų, yra žinoma kaip REST API, kartais vadinama RESTful API. REST API kiekviena duomenų dalis tvarkoma kaip išteklius ir suteikiama atskira standartinė išteklių tapatybė (URI).
Pavyzdžiui, „Twitter“ API kiekvieną tviterį paverčia atkuriamu šaltiniu, pasiekiamu klientams. „Twitter“ API vartotojai gali skelbti tviterius ir atlikti kitas svetainės užduotis.
3. Kas tiksliai yra URI?
A kompiuterinis tinklas išteklius galima nurodyti naudojant URI arba vienodą išteklių identifikatorių. Tai yra priemonė atskirti vienus išteklius nuo kitų. Šaltiniai gali būti internete arba ne.
Dėl savo standartinės struktūros URI lengva prisijungti net prie įvairių tipų išteklių. Ištekliaus vieta arba pavadinimas įtraukiami į URI kartu su simbolių eilute.
URI sudaro kelias, schema, užklausa ir kiti elementai, tačiau jis neapima protokolo.
Naudojant protokolą, URL (Uniform Resource Locator) naudojami ištekliams internete arba per jį rasti.
4. Kokios yra RESTful Web Services savybės?
- Kliento ir serverio paradigma yra paslaugos pagrindas.
- Paslauga gali pasiekti išteklius naudodama URI.
- Paslauga naudoja HTTP protokolą duomenims / ištekliams gauti, užklausoms vykdyti ir kitoms užduotims atlikti.
- Pranešimai yra metodo, naudojamo ryšiui tarp kliento ir serverio, pavadinimas.
- Šios paslaugos taip pat gali įgyvendinti REST architektūrinį modelį naudojant SOAP paslaugas.
- Siekdamos sumažinti serverio iškvietimus dėl tos pačios rūšies pasikartojančių užklausų, šios paslaugos taip pat naudoja talpyklos idėją.
5. Kokie yra pagrindiniai REST principai?
REST API turi atitikti penkis kriterijus:
Kliento ir serverio atsiejimas: norint susisiekti tarp kliento ir serverio, galima naudoti tik užklausų ir atsakymų seriją. Tik klientai ir serveriai gali siųsti atitinkamai užklausas ir atsakymus. Ši paprasta idėja leidžia abiem šalims veikti nepriklausomai viena nuo kitos.
Vienoda sąsaja: visiems kliento ir serverio ryšiams turi būti vienodas protokolas. Šis REST protokolas yra HTTP. Kadangi kiekviena programa prašo ir siunčia duomenis ta pačia kalba, nuosekli sąsaja palengvina integravimą.
Be būsenos: serveris neišsaugo jokių ankstesnių užklausų ar atsakymų įrašų, kai palaikomas ryšys be būsenos. Kiekviename prašyme ir atsakyme pateikiama visa informacija, reikalinga mainams užbaigti. Ryšys be būsenos padidina greitį, taupo atmintį ir sumažina įtampą serveryje. Be to, išvengiama galimybės, kad užklausa nepavyks dėl neišsamių duomenų.
Sluoksniuota sistema: serveriai, esantys tarp kliento ir API serverio, vadinami sluoksniais. Šie papildomi serveriai atlieka įvairias paslaugas, pavyzdžiui, aptinka šiukšles ir optimizuoja greitį. REST sluoksniai yra moduliniai, tai reiškia, kad juos galima pridėti ir ištrinti nepažeidžiant kliento ir API serverio ryšio.
Talpykla: klientai gali išsaugoti bet kokius išteklius talpykloje, kad padidintų greitį, jei serverio atsakymai nurodo, ar išteklius galima laikyti talpykloje, ar ne.
Kodavimas pagal pareikalavimą: reaguodama į API gali klientams perduoti vykdomąjį kompiuterio kodą. Tada kliento programa gali paleisti kodą savo galinėje dalyje.
6. Paminėkite HTTP metodus, kuriuos palaiko REST.
REST palaikomi HTTP metodai yra šie:
- GET: Šis metodas prašo išteklių nurodytu URL. Užklausos turinys neturėtų būti įtrauktas, nes jis bus ignoruojamas. Gali būti įmanoma jį talpykloje išsaugoti vietoje arba serveryje.
- POST: šis metodas siunčia duomenis į paslaugą apdoroti, o paslauga paprastai turėtų grąžinti naują arba pakeistą šaltinį.
- PUT: išteklius atnaujinamas užklausos URL.
- IŠTRINTI: užklausos URL ištekliai ištrinami.
- Parinktys: nurodo palaikomus metodus.
- HEAD: grąžinami užklausos URL metaduomenys.
7. Apibūdinkite nuoseklios sąsajos taikomus apribojimus.
Norint atskirti klientą nuo serverio, reikalinga nuosekli sąsaja.
Norint pasiekti nuoseklią sąsają, reikalingi šie keturi apribojimai:
- Išteklių identifikavimas: klientų užklausose turi būti naudojami standartiniai išteklių ID, kad būtų galima identifikuoti išteklius (URI)
- Manipuliavimas ištekliais naudojant šias reprezentacijas: klientai turi visą informaciją, reikalingą, kad galėtų pakeisti išteklių būseną, kai gauna išteklių atvaizdą iš serverio.
- Save aprašantys pranešimai: pranešimai apima visus metaduomenis ir kitą informaciją, kurios reikia, kad gavėjas galėtų juos suprasti.
- Hipermedija kaip programos būsenos variklis: kliento ir serverio ryšio kanalas yra hipermedija, pvz., HTML, o klientams nereikia API specifinės dokumentacijos, kad suprastų serverio atsakymus.
8. Kas tiksliai yra REST resursas?
Ištekliai yra pagrindiniai „RESTful“ žiniatinklio paslaugos komponentai REST architektūroje. Juose yra visa svarbi informacija, kurią turi pasiekti API klientas.
Bet kokio tipo išteklius, pvz., HTML puslapį, vaizdą, vaizdo įrašą ar bet ką kitą, reikalingą API veiklai, galima pasiekti per serverį kliento-serverio sistemoje.
Ištekliai identifikuojami pagal Uniform Resource Identifier. Tekstas, JSON arba XML yra priimtini išteklių atvaizdai. Tai nurodžius, vaizdavimo formatui nėra jokių apribojimų.
9. Ką tau reiškia JAX-RS?
Naudojant Java API RESTful žiniatinklio paslaugoms, dažnai žinomoms kaip JAX-RS, sukurti RESTful žiniatinklio paslaugas yra paprasčiau. Kūrėjai gali apibūdinti išteklius ir operacijas, kurias galima atlikti su jais naudodami pateiktas anotacijas.
10. Kuo AJAX ir REST skiriasi vienas nuo kito?
„Ajax“:
- „Ajax“ yra technologijų grupė, leidžianti dinamiškai atnaujinti vartotojo sąsaja elementus, nereikia įkelti puslapio iš naujo.
- „Ajax“ pašalina asinchroninį ryšį tarp kliento ir serverio.
POILSIS:
- REST reikalauja ryšio tarp serverio ir kliento.
- Išteklių naudojimas yra svarbus URL struktūrai ir REST naudojamai užklausos / atsakymo šablonui.
11. Ar galite išvardyti keletą RESTful interneto paslaugų trūkumų?
Sesijos negali būti tęsiamos, nes tarnybos laikosi pilietybės neturėjimo sąvokos. (Klientas yra atsakingas už seanso ID perdavimą seanso modeliavimo metu.)
Saugumo apribojimai nėra esminiai REST. Jį naudojantys protokolai paveldi saugos priemones. Todėl svarbu būti atsargiems taikant saugos priemones, pvz., integruojant SSL/TLS pagrįstą autentifikavimą.
12. Kuo PUT ir POST metodai skiriasi vienas nuo kito?
PUT:
- PUT atsakymams nėra talpyklos.
- Idempotentas (ty keli užklausos duos tą patį rezultatą)
- užklausos naudingoji apkrova atnaujina arba pakeičia tikslinį šaltinį.
POST:
- idempotentas ne (ty keli užklausos duos to paties šaltinio kartotinius)
- Žiniatinklio serveris apdoroja naudingą užklausos apkrovą pagal numatytus išteklius.
- Jei įtraukta atitinkama talpyklos valdymo antraštė, POST atsakymai gali būti saugomi talpykloje.
13. Kaip testuojate RESTful žiniatinklio paslaugas?
RESTful žiniatinklio paslaugų testavimą gali padėti daugybė įrankių, įskaitant „Swagger“ ir „Postman“. Patikrinti užklausos parametrus, pvz., užklausos parametrus, antraštes ir atsakymo antraštes, įmanoma dėl pastarųjų funkcijų gausos.
„Postman“ gali būti naudojamas norint pateikti užklausas galutiniams taškams ir rodyti rezultatus. Iš šių atsakymų galima sukurti XML ir JSON.
„Postman“ ir „Swagger“ teikia labai panašias funkcijas. Kita vertus, „Swagger“ taip pat siūlo tokias galimybes kaip galutinio taško dokumentacija.
14. Apibūdinkite REST API realiame pasaulyje.
- Kelionių ir bilietų pardavimo svetainės gali panaudoti skrydžių laiką ir kainas, kurias oro linijos pateikia per API.
- Kad žemėlapių ir navigacijos programos (pvz., „Google Maps“) galėtų jas naudoti, viešojo transporto agentūros dažnai viešai skelbia savo duomenis realiuoju laiku per API.
- Orų programos naudoja atviras API, kurios keičiasi orų duomenimis, kad parodytų orų informaciją.
- Kūrėjai gali pasiekti „Google“ žemėlapių žemėlapių duomenis naudodami daugybę priglobtų API. Šias API kūrėjai naudoja dinaminiams žemėlapiams į savo programas ir svetaines įterpti.
15. Kaip veikia „Microservice“ architektūra?
- Užklausas siunčia įvairūs klientai naudodami įvairius įrenginius.
- Patvirtinus klientų tapatybę, tapatybės teikėjai pateikia saugos žetonus.
- Klientų užklausas tvarko API šliuzas.
- Visa sistemos medžiaga išsaugoma kaip statinis turinys.
- Valdymo įrankis tikrina paslaugų balansą mazguose ir visus gedimus.
- Atrasti komunikacijos kelią tarp mikroservisų padeda paslaugų atradimas.
- Duomenų centrai ir tarpiniai serveriai sudaro išsklaidytas tinklo sistemas, vadinamas turinio pristatymo tinklais.
- Nuotolinės paslaugos suteikia prieigą prie informacijos per atstumą.
16. Kas tiksliai yra talpyklos kaupimas?
Praktika laikinai saugoti serverio atsakymo kopiją kažkur (pvz., kompiuterio atmintyje), kad vėliau ją būtų galima greičiau pasiekti, vadinama talpyklos kaupimu.
Talpyklos kaupimas padidina serverio greitį, kai naudojamas REST API, sumažindamas serverio darbo, kurį turi atlikti, kad patenkintų užklausą, kiekį. Programos, kurios naudoja API, veikia greičiau dėl talpyklos saugojimo, nes joms nereikia pateikti naujos užklausos kiekvieną kartą, kai reikia išteklių.
HTTP atsakymo antraštės lauke „Cache-Control“ pateikiama informacija apie tai, kiek laiko klientas gali išsaugoti šaltinį talpykloje, kol jį vėl reikės pasiekti.
17. Apibūdinkite naudingą apkrovą.
Naudingoji apkrova REST nurodo informaciją, esančią HTTP atsakymo tekste. Klientas naudojo GET metodą, kad paprašytų atitinkamų duomenų.
Dokumentas, kuriame yra tviterinio pranešimo tekstas ir visi reikalingi failai, skirti tviteriui įkelti į svetainę, bus įtrauktas į naudingą apkrovą, pavyzdžiui, jei paprašysite „Twitter“ API konkretaus tviterinio pranešimo. Be to, naudingoji apkrova gali būti įtraukta į HTTP užklausą naudojant POST metodą.
18. Atskirti MUILAS Vs REST?
- Skirtingai nuo SOAP, kuris gali tvarkyti tik XML, REST įgalina platesnį išteklių formatų spektrą, įskaitant XML, tekstą, HTML, paveikslėlius, vaizdo įrašus ir kt.
- Kai saugumas yra itin svarbus internetinėms programoms, SOAP yra naudingas. REST negalima naudoti, kai operacijos turi būti užbaigtos saugiai, nes ji nėra ypač saugi.
- Kadangi SOAP yra tik protokolas, REST gali jį naudoti savo žiniatinklio paslaugose, bet ne atvirkščiai.
- Nors REST yra tik architektūrinis modelis, naudojamas žiniatinklio paslaugoms kurti ir atitinka tam tikrus apribojimus, tokius kaip kliento ir serverio sąranka, be pilietybės, talpyklos talpinimo atsakas, daugiasluoksnės sistemos ir nuosekli sąsaja, SOAP yra protokolas, veikiantis pagal tam tikrus standartus, kurių reikia griežtai laikytis. į.
- Nors REST naudoja universalius išteklių identifikatorius (URI), SOAP naudoja paslaugų sąsajas, kad suteiktų savo galimybes kliento programoms. REST reikalauja mažesnio pralaidumo nei SOAP, nes SOAP pranešimai yra daug informacijos.
19. Ar transporto lygmens saugos protokolą (TLS) galima naudoti su REST?
Tiesą sakant, mes galime. REST kliento ir serverio ryšys yra užšifruotas per TLS, o protokolas taip pat suteikia klientams galimybę autentifikuoti serverius.
Dėl to, kad tai yra Secure Socket Layer pakaitalas, jis naudojamas saugiam ryšiui (SSL). RESTful žiniatinklio paslaugų diegimas yra sėkmingas naudojant HTTPS, nes jis efektyviai bendradarbiauja tiek su TLS, tiek su SSL.
REST paveldi jo įgyvendinamo protokolo ypatybes, o tai yra vienas dalykas, į kurį reikia atkreipti dėmesį. Dėl to saugumo apsauga priklauso nuo REST naudojamo protokolo.
20. Idempotentiniai metodai: kas tai yra? Kaip tai taikoma RESTful interneto paslaugų pasauliui?
Kai URI yra tas pats, kai kurie HTTP metodai užklausoje turi tokį patį poveikį serveriui, nesvarbu, ar jie pateikiami vieną ar kelis kartus. Idempotentiniai metodai yra žinomi kaip.
Pavyzdžiui, nesvarbu, kiek kartų paleidžiamas URI naudojant GET metodą, serveris visada patirs tą patį rezultatą. Idempotentiniai metodai apima GET, PUT ir PATCH.
Idempotent HTTP metodai yra kai kurie iš tų, kuriuos naudoja RESTful interneto programos. Jie būtini norint užtikrinti RESTful interneto paslaugų veiklos nuoseklumą.
Klientai, naudojantys REST API, gali padaryti kodo klaidų, dėl kurių REST API netyčia kartoja užklausas. Šie skambučiai gali netinkamai naudoti išteklius.
21. Kokios yra HTTP pagrindinės autentifikavimo funkcijos?
Naudodamas pagrindinį autentifikavimą kaip API dalį, vartotojas turi pateikti vartotojo vardą ir slaptažodį, kuriuos naršyklė sujungia forma „naudotojo vardas: slaptažodis“ ir užkoduotą base64.
Kiekvienoje naršyklės HTTP užklausoje užkoduota reikšmė pateikiama kaip antraštės „Authorization“ reikšmė. Kadangi kredencialai yra tik užkoduoti, rekomenduojama naudoti šią formą siunčiant HTTPS užklausas, nes jos nėra saugios ir gali būti bet kurios perimtos, jei nenaudojami saugos protokolai.
22. Ar manote, kad GraphQL yra geriausias pasirinkimas kuriant mikro paslaugų architektūrą?
„Microservices“ ir „GraphQL“ puikiai dera, nes „GraphQL“ jūsų mikro paslaugų architektūrą laiko paslaptyje nuo jūsų klientų.
Iš priekinės pusės norite, kad visi jūsų duomenys būtų gaunami iš vienos API, o iš galinės dalies norite padalyti juos į mikropaslaugas. Geriausias būdas, kurį žinau, norint pasiekti abu, yra naudoti GraphQL.
Tai leidžia padalyti pagrindinę sistemą į mikropaslaugas, vis tiek kiekvienai programai suteikiant vieną API ir leidžiant sujungti duomenis iš įvairių paslaugų.
23. Kokie pagrindiniai skirtumai tarp saugaus ir idempotento HTTP metodų?
Idempotentiniai metodai duoda tą patį rezultatą, kai iškviečiami vieną ar kelis kartus per tą pačią užklausą. PUT metodas yra idempotentas.
Visi saugūs būdai yra idempotentiški, bet ne visi idempotentiniai metodai yra saugūs, nes saugūs metodai nekeičia išteklių. Pavyzdžiui, GET yra saugus, nes jis tik nuskaito duomenis ir nekeičia išteklių.
Be to, jis yra idempotentas, ty visada pateiks tą patį atsakymą.
24. Ką JAX-RS API reiškia RESTful Root Resource Classes?
„Java Enterprise Edition“ pateikia klases ir sąsajas, kurios atitinka JAX-RS API reikalavimus. Naudojant JAX-RS, „Java“ žiniatinklio paslaugų kūrimas REST architektūriniu stiliumi yra lengvesnis.
JAX-RS API šakninių išteklių klasės yra tik „paprasti seni Java objektai“ arba POJO. Norėdami įdiegti reikiamus žiniatinklio išteklius, jie naudoja JAX-RS anotacijas.
Jie turi @path komentarus arba bent vienas iš jų metodų turi @path komentarus. Jas galima apibendrinti kaip „Java“ klases su API galinių taškų tvarkymo metodais.
25. Kas iš tikrųjų yra paštininkas ir kodėl jis naudojamas?
API kūrimo įrankis, vadinamas Postman, naudojamas API kūrimui, testavimui ir modifikavimui. Šį įrankį kūrėjai gali naudoti bet kuriai funkcijai, kurios jiems reikia API. Tai supaprastina ir palengvina kūrėjų darbą.
„Postman“ leidžia lengvai atlikti įvairias HTTP užklausas, įskaitant GET, POST, PUT ir PATCH, išsaugoti aplinkas vėlesniam naudojimui ir konvertuoti API į kodą įvairiomis kalbomis.
Kiekvienas API ciklo etapas yra paprastesnis naudojant „Postman“, o bendradarbiavimas supaprastintas, kad būtų galima greičiau kurti API.
Be to, tai leidžia kūrėjams valdyti dokumentaciją, specifikacijas, bandymų atvejus, procesus ir API katalogus.
26. Kaip saugomos REST API?
Kadangi REST API nenaudoja tokių griežtų saugumo priemonių kaip SOAP API, neskelbtini duomenys neturėtų būti siunčiami ar gaunami naudojant jas.
Tačiau patikimos REST API ir toliau integruoja saugos valdiklius, kad būtų galima saugiai ir patikimai perduoti duomenis.
- Autentifikavimas ir įgaliojimas: kiekviena API pateikta užklausa turi išlaikyti šiuos du patikrinimus. Kliento tapatybės tikrinimas naudojant autentifikavimą ir patvirtinimas, kad jis turi teisę pasiekti prašomus išteklius per įgaliojimą, yra du skirtingi procesai.
- Patvirtinimas: prieš suteikiant API prieigą prie savo išteklių, po autentifikavimo ir prieigos teisės užklausos vis tiek turi būti patikrintos, ar nėra žalingo kodo. Taigi serveris būtų atviras injekcijos atakai.
- Patvirtinimas: prieš suteikiant API prieigą prie savo išteklių, po autentifikavimo ir prieigos teisės užklausos vis tiek turi būti patikrintos, ar nėra žalingo kodo. Taigi serveris būtų atviras injekcijos atakai.
- Šifravimas: TLS/SSL šifravimas apsaugo ryšį tarp kliento ir serverio ir neleidžia įsilaužėliams perimti užklausas ir atsakymus.
- Greitį ribojantys metodai, tokie kaip apribojimai ir ribojimas, apsaugo serverius nuo žiaurios jėgos išpuolių, pvz., DDoS, kuriais siekiama juos pabloginti arba sugriauti.
- URI neskelbtinos informacijos: išteklių URI neturėtų būti jokių apsaugotų duomenų (pvz., vartotojo vardo, slaptažodžio ar autentifikavimo prieigos rakto).
Išvada
Sveikiname! Keli pagrindiniai ir sudėtingi REST API interviu klausimai ir atitinkami jų sprendimai dabar yra po ranka.
Dabar, kai gerai žinote, kaip atsakyti į kai kuriuos tipiškus REST API interviu klausimus, galite tęsti atsakymą į interviu. Kitas žingsnis priklauso nuo jūsų tikslų.
apsilankymas Interviu serija su Hašdorku pasiruošti interviu.
Palikti atsakymą