Innholdsfortegnelse[Gjemme seg][Forestilling]
- 1. Hva forstår du med REST?
- 2. Hva mener du med REST API?
- 3. Hva er egentlig URI?
- 4. Hva kjennetegner RESTful Web Services?
- 5. Hva er de veiledende prinsippene for REST?
- 6. Nevn HTTP-metodene som REST støtter.
- 7. Beskriv restriksjonene som settes av et konsistent grensesnitt.
- 8. Hva er egentlig en REST-ressurs?
- 9. Hva betyr JAX-RS for deg?
- 10. Hva skiller AJAX og REST fra hverandre?
- 11. Kan du liste noen RESTful webtjenester ulemper?
- 12. Hva skiller PUT- og POST-teknikker fra hverandre?
- 13. Hvordan tester du RESTful webtjenester?
- 14. Beskriv en REST API i den virkelige verden.
- 15. Hvordan fungerer Microservice Architecture?
- 16. Hva er egentlig caching?
- 17. Beskriv nyttelast.
- 18. Skille SOAP Vs REST?
- 19. Kan transportlagssikkerhetsprotokollen (TLS) brukes med REST?
- 20. Idempotente metoder: hva er de? Hvordan gjelder det en verden av RESTful webtjenester?
- 21. Hva er funksjonaliteten til grunnleggende HTTP-autentisering?
- 22. Tror du GraphQL er det beste valget for å lage mikrotjenestearkitektur?
- 23. Hva er hovedforskjellene mellom trygge og idempotente HTTP-metoder?
- 24. Hva innebærer JAX-RS API av RESTful Root Resource Classes?
- 25. Hva er egentlig Postman, og hvorfor brukes det?
- 26. Hvordan holdes REST APIer sikre?
- konklusjonen
RESTs utvikling har gjort APIer utrolig tilgjengelige, samtidig som de avslører deres fulle styrke og potensial. REST APIer er enkle å lage og hurtigbufre på grunn av deres ressursorienterte arkitektur.
I tillegg, gjennom tiden, var RESTful API-er forløperne til andre viktige utviklinger som cloud computing og mikrotjenestebasert design.
Derfor bør det ikke komme som noen overraskelse at REST API-utviklere er etterspurt i dag gitt hvordan de gir bedrifter som bruker RESTful-tjenester et konkurransefortrinn. REST APIer er en populær designtrend.
Mange IT-firmaer ønsker REST API-kunnskap fra programvareutviklere og spør om det i tekniske intervjuer.
Her er noen av de mest typiske REST API-intervjuspørsmålene som vil hjelpe deg å være klar for intervjuer hos forskjellige firmaer hvis du ønsker å jobbe i REST API-utviklingsfeltet.
1. Hva forstår du med REST?
REST er et arkitektonisk paradigme for utforming av nettbaserte applikasjoner som er basert på Hypertext Transfer Protocol (HTTP).
REST definerer visse standarder som webtjenester må oppfylle for å regnes som RESTful. Disse anbefalingene garanterer at forespørsler og ressurser overføres raskt og effektivt mellom klient og server ved bruk av standardiserte HTTP-protokoller.
2. Hva mener du med REST API?
En programvare-til-programvare-kobling kjent som et applikasjonsprogrammeringsgrensesnitt muliggjør kommunikasjon og datadeling mellom ellers uavhengige programmer. For eksempel kan et nyhetsnettsted bruke Twitter API til å oppdage relevante tweets automatisk og integrere dem i nyhetssaker.
En API som følger REST-prinsippene er kjent som en REST API, noen ganger kjent som en RESTful API. I et REST API håndteres hver del av data som en ressurs og får en distinkt standard ressursidentitet (URI).
For eksempel gjør Twitter API hver tweet til en gjenfinnbar ressurs som er tilgjengelig for klienter. Twitter API kan brukes av brukere til å legge ut tweets og utføre andre nettstedsoppgaver.
3. Hva er egentlig URI?
A datanettverk ressurs kan refereres til ved hjelp av en URI eller enhetlig ressursidentifikator. Det fungerer som et middel til å skille en ressurs fra en annen. Kildene kan være online eller ikke.
På grunn av deres standardstruktur gjør URIer det enkelt å koble til selv ulike typer ressurser. Plasseringen eller navnet på ressursen er inkludert i URIer sammen med en streng med tegn.
URI-en består av en bane, skjema, spørring og andre elementer, men inkluderer ikke protokollen.
Ved å bruke en protokoll brukes URL-er (Uniform Resource Locators) for å finne ressurser på internett eller tilgjengelige gjennom det.
4. Hva kjennetegner RESTful Web Services?
- Klient-tjener-paradigmet er grunnlaget for tjenesten.
- Tjenesten kan få tilgang til ressurser ved å bruke URIer.
- Tjenesten bruker HTTP-protokollen til å skaffe data/ressurser, kjøre spørringer og utføre andre oppgaver.
- Meldingstjenester er navnet på metoden som brukes til å kommunisere mellom klienten og serveren.
- Disse tjenestene kan også implementere REST-arkitektoniske mønster ved å bruke SOAP-tjenester.
- For å redusere serveranrop for samme type repeterende forespørsler, bruker disse tjenestene også ideen om caching.
5. Hva er de veiledende prinsippene for REST?
Fem kriterier må oppfylles av REST APIer:
Klient-server-frakobling: Bare en rekke forespørsler og svar kan brukes til å kommunisere mellom klienten og serveren. Bare klienter og servere kan sende henholdsvis forespørsler og svar. Denne enkle ideen gjør det mulig for begge parter å fungere uavhengig av hverandre.
Uniform Interface: Det må være en enhetlig protokoll for alle klient-server-tilkoblinger. Denne protokollen for REST er HTTP. Fordi hver applikasjon ber om og sender data med samme språk, gjør et konsistent grensesnitt integrasjoner enklere.
Statsløs: Serveren lagrer ingen registreringer av tidligere forespørsler eller svar i statsløs kommunikasjon. Hver forespørsel og svar gir alle detaljene som kreves for å fullføre utvekslingen. Statsløs kommunikasjon øker hastigheten, sparer minne og reduserer stresset på serveren. I tillegg unngår den muligheten for at en forespørsel mislykkes på grunn av ufullstendige data.
Lagdelt system: Servere som ligger mellom klienten og API-serveren blir referert til som lag. Disse ekstra serverne utfører en rekke tjenester, for eksempel å oppdage spam og optimalisere hastigheten. Lag i REST er modulære, noe som betyr at de kan legges til og slettes uten å påvirke kommunikasjonen mellom klienten og API-serveren.
Bufret: Klienter kan bufre alle ressurser for å øke hastigheten hvis serversvar indikerer om ressursen er bufret eller ikke.
On-demand-koding: Som svar kan en API overføre kjørbar datakode til kunder. Klientapplikasjonen kan deretter kjøre koden på sin egen bakside.
6. Nevn HTTP-metodene som REST støtter.
HTTP-metodene som REST støtter er:
- GET: Denne metoden ber om en ressurs på den angitte URL-en. En forespørselstekst skal ikke inkluderes fordi den vil bli ignorert. Det kan være mulig å cache det lokalt eller på serveren.
- POST: Denne metoden sender data til en tjeneste for behandling, og tjenesten skal normalt returnere en ny eller endret ressurs.
- PUT: Ressursen oppdateres ved forespørselens URL.
- SLETT: Ressursen slettes ved forespørselens URL.
- Alternativer: Den identifiserer de støttede metodene.
- HEAD: Forespørsels-URLens metadata returneres.
7. Beskriv restriksjonene som settes av et konsistent grensesnitt.
For å skille klienten fra serveren kreves et konsistent grensesnitt.
For å oppnå et konsistent grensesnitt kreves følgende fire begrensninger:
- Ressursidentifikasjon: Klientforespørsler må bruke standard ressurs-IDer for å identifisere ressurser (URI)
- Ressursmanipulering ved bruk av disse representasjonene: Klienter har all informasjon som kreves for å kunne endre ressurstilstand når de får en ressursrepresentasjon fra serveren.
- Selvbeskrivende meldinger: Meldinger inkluderer alle metadata og annen informasjon som kreves for at mottakeren skal forstå dem.
- Hypermedia som applikasjonstilstandsmotor: Kanalen for klient-server-kommunikasjon er hypermedia, for eksempel HTML, og klienter trenger ikke API-spesifikk dokumentasjon for å forstå serversvar.
8. Hva er egentlig en REST-ressurs?
Ressurser er de grunnleggende komponentene i en RESTful webtjeneste i en REST-arkitektur. De inkluderer all viktig informasjon som en API-klient trenger å få tilgang til.
Alle typer ressurser, for eksempel en HTML-side, et bilde, en video eller noe annet som trengs for en API-aktivitet, kan nås via serveren i et klient-serversystem.
Ressursene identifiseres av en Uniform Resource Identifier. Tekst, JSON eller XML er alle akseptable representasjoner av ressurser. Etter å ha sagt det, er det ingen begrensninger på representasjonens format.
9. Hva betyr JAX-RS for deg?
Det er enklere å lage RESTful webtjenester i Java takket være Java API for RESTful webtjenester, ofte kjent som JAX-RS. Utviklere kan beskrive ressurser og operasjonene som kan utføres på dem ved å bruke merknadene som er gitt.
10. Hva skiller AJAX og REST fra hverandre?
Ajax:
- Ajax er en gruppe teknologier som gir mulighet for dynamisk oppdatering av brukergrensesnitt elementer uten å måtte laste inn siden på nytt.
- Ajax fjerner asynkron kommunikasjon mellom klient og server.
HVILE:
- REST krever kommunikasjon mellom serveren og klienten.
- Ressursutnyttelsen er viktig for URL-strukturen og forespørsel/svarmønsteret som brukes av REST.
11. Kan du liste noen RESTful webtjenester ulemper?
Sesjoner kan ikke holdes oppe siden tjenestene holder seg til forestillingen om statsløshet. (Klienten er ansvarlig for å sende økt-ID-en gjennom hele simuleringen av økten.)
Sikkerhetsbegrensninger er ikke grunnleggende for REST. Protokollene som bruker det, arver sikkerhetstiltakene. Derfor er det viktig å være forsiktig mens du setter sikkerhetstiltak på plass, for eksempel integrering av SSL/TLS-baserte autentiseringer.
12. Hva skiller PUT- og POST-teknikker fra hverandre?
SETTE:
- Det er ingen hurtigbuffer for PUT-svar.
- Idempotent (dvs. flere forespørsler vil gi samme resultat)
- forespørselens nyttelast oppdaterer eller erstatter målressursen.
POST:
- idempotent ikke (dvs. flere forespørsler vil gi multipler av samme ressurs)
- Nettserveren behandler nyttelasten til forespørselen basert på den tiltenkte ressursen.
- Hvis riktig cache-control header er inkludert, kan POST-svar bufres.
13. Hvordan tester du RESTful webtjenester?
RESTful webtjenestetesting kan hjelpes av en rekke verktøy, inkludert Swagger og Postman. Inspeksjon av forespørselsparametere som spørringsparametere, overskrifter og svarhoder er muliggjort av sistnevntes overflod av funksjoner.
Postman kan brukes til å sende forespørsler til endepunkter og vise resultatene. Og XML og JSON kan lages fra disse svarene.
Postman og Swagger gir begge ekstremt sammenlignbare funksjoner. På den annen side tilbyr Swagger også funksjoner som endepunktdokumentasjon.
14. Beskriv en REST API i den virkelige verden.
- Reise- og billettnettsteder kan utnytte flytidene og prisene som flyselskapene gjør tilgjengelig gjennom APIer.
- For at kart- og navigasjonsapper (som Google Maps) skal kunne bruke dem, gjør offentlige transportbyråer ofte dataene sine offentlig tilgjengelig i sanntid via APIer.
- Værapplikasjoner bruker åpne APIer som utveksler værdata for å vise værinformasjon.
- Utviklere kan få tilgang til Google Maps sine kartdata via en rekke vertsbaserte API-er. Disse API-ene brukes av utviklere til å bygge inn dynamiske kart i appene og nettstedene deres.
15. Hvordan fungerer Microservice Architecture?
- Forespørsler sendes av ulike kunder ved hjelp av ulike enheter.
- Etter å ha bekreftet kundenes identitet, gir identitetsleverandører sikkerhetstokens.
- Klientforespørslene administreres av API Gateway.
- Alt av systemets materiale er bevart som statisk innhold.
- Styringsverktøyet sjekker tjenestebalansen på noder og eventuelle feil.
- Å oppdage kommunikasjonsveien mellom mikrotjenester blir hjulpet av tjenesteoppdagelse.
- Datasentre og proxy-servere utgjør spredte nettverkssystemer kalt innholdsleveringsnettverk.
- Fjerntjenester gir informasjonstilgang på avstand.
16. Hva er egentlig caching?
Praksisen med å midlertidig oppbevare en kopi av et serversvar et sted (for eksempel datamaskinminne) for å få tilgang til det senere raskere er kjent som caching.
Bufring forbedrer serverhastigheten når du bruker REST APIer ved å redusere mengden arbeid serveren må gjøre for å tilfredsstille forespørselen. Applikasjoner som bruker API kjører raskere takket være caching fordi de ikke trenger å sende inn en ny forespørsel hver gang de trenger en ressurs.
HTTP-svarhodets Cache-Control-felt inneholder informasjon om hvor lenge en ressurs kan bufres av klienten før den må åpnes igjen.
17. Beskriv nyttelast.
Nyttelasten i REST refererer til informasjonen i hoveddelen av HTTP-svaret. Kunden brukte GET-teknikken for å be om de aktuelle dataene.
Dokumentet som inneholder tweetteksten og eventuelle nødvendige filer for å legge tweeten på et nettsted, vil bli inkludert i nyttelasten, for eksempel hvis du ber Twitter API om en spesifikk tweet. I tillegg kan nyttelasten inkluderes i HTTP-forespørselen ved å bruke POST-metoden.
18. Differensier SÅPE VS HVILE?
- I motsetning til SOAP, som bare kan håndtere XML, muliggjør REST et bredere spekter av ressursformater, inkludert XML, tekst, HTML, bilder, video og mer.
- Når sikkerhet er avgjørende for nettapplikasjoner, er SOAP nyttig. REST kan ikke benyttes når transaksjoner må gjennomføres sikkert siden det ikke er spesielt sikkert.
- Siden SOAP kun er en protokoll, kan REST bruke den i sine nettjenester, men ikke omvendt.
- Mens REST bare er et arkitektonisk mønster som brukes til å utvikle webtjenester og overholder visse begrensninger som klient-server-oppsett, tilstandsløshet, hurtigbufring, lagdelte systemer og konsistent grensesnitt, er SOAP en protokoll som opererer på bestemte standarder som må følges strengt. til.
- Mens REST bruker universelle ressursidentifikatorer (URI), bruker SOAP tjenestegrensesnitt for å gi sine muligheter til klientapplikasjoner. REST har et lavere båndbreddebehov enn SOAP siden SOAP-meldinger er mer informasjonstunge.
19. Kan transportlagssikkerhetsprotokollen (TLS) brukes med REST?
Faktisk kan vi det. REST-klienten og serverens kommunikasjon er kryptert via TLS, og protokollen gir også klienter en måte å autentisere servere på.
På grunn av det faktum at det er Secure Socket Layers erstatning, brukes det til sikker kommunikasjon (SSL). Implementering av RESTful-netttjenester er vellykket med HTTPS fordi det samarbeider effektivt med både TLS og SSL.
REST arver egenskapene til protokollen den implementerer, noe som er en ting å merke seg her. Som et resultat er sikkerhetsbeskyttelsen avhengig av protokollen som REST bruker.
20. Idempotente metoder: hva er de? Hvordan gjelder det en verden av RESTful webtjenester?
Når URI-en er den samme, har noen HTTP-metoder i en forespørsel samme innvirkning på serveren enten de leveres én eller flere ganger. Idempotente teknikker er hva disse er kjent som.
For eksempel, uansett hvor mange ganger en URI som bruker GET-metoden kjøres, vil serveren alltid oppleve det samme resultatet. Idempotente metoder inkluderer GET, PUT og PATCH, for å nevne noen.
Idempotente HTTP-metoder er noen av de som brukes av RESTful nettapplikasjoner. De er nødvendige for å garantere konsistens i RESTful-netttjenestenes aktiviteter.
Kunder som bruker REST APIer kan lage kodefeil som tvinger en REST API til å komme med gjentatte forespørsler ved et uhell. Disse samtalene har potensial til å misbruke ressurser.
21. Hva er funksjonaliteten til grunnleggende HTTP-autentisering?
Når du bruker grunnleggende autentisering som en del av APIer, må brukeren sende inn brukernavnet og passordet, som er sammenkoblet av nettleseren i formen "brukernavn: passord" og base64-kodet.
På hver HTTP-forespørsel fra nettleseren leveres den kodede verdien som verdien for "Autorisasjon"-overskriften. Fordi legitimasjonen bare er kodet, anbefales det å bruke dette skjemaet når du sender HTTPS-forespørsler fordi de ikke er sikre og kan avskjæres av hvem som helst hvis sikkerhetsprotokoller ikke brukes.
22. Tror du GraphQL er det beste valget for å lage mikrotjenestearkitektur?
Microservices og GraphQL passer perfekt fordi GraphQL holder mikroservicearkitekturen hemmelig for kundene dine.
Fra frontenden vil du at alle dataene dine skal komme fra et enkelt API, mens fra bakenden vil du dele det inn i mikrotjenester. Den beste teknikken jeg er klar over for å oppnå begge deler er å bruke GraphQL.
Den lar deg dele opp backend-en din i mikrotjenester, samtidig som den gir hver applikasjon et enkelt API og muliggjør sammenføyninger på tvers av data fra ulike tjenester.
23. Hva er hovedforskjellene mellom trygge og idempotente HTTP-metoder?
Idempotente metoder gir samme resultat når de påberopes én eller flere ganger gjennom samme forespørsel. PUT-metoden er idempotent.
Alle sikre måter er idempotente, men ikke alle idempotente metoder er trygge siden sikre metoder ikke endrer ressursene. For eksempel er GET sikkert siden det bare henter data og ikke endrer ressursen.
I tillegg er det idempotent, noe som betyr at det alltid vil returnere det samme svaret når det påkalles.
24. Hva innebærer JAX-RS API av RESTful Root Resource Classes?
Java Enterprise Edition gir klasser og grensesnitt som overholder JAX-RS API-kravene. Ved hjelp av JAX-RS blir det enklere å lage Java-webtjenester i REST-arkitektonisk stil.
I JAX-RS API er rotressursklasser bare "vanlige gamle java-objekter" eller POJO. For å implementere de nødvendige nettressursene bruker de JAX-RS-merknader.
De har enten @banemerknader eller minst én av metodene deres har @banemerknader. De kan oppsummeres som Java-klasser med metoder for å håndtere API-endepunkter.
25. Hva er egentlig Postman, og hvorfor brukes det?
Et API-utviklingsverktøy kalt Postman brukes til å lage, teste og endre APIer. Dette verktøyet kan brukes av utviklere for den funksjonen de trenger for en API. Det forenkler og letter utviklernes arbeid.
Postman gjør det enkelt å lage en rekke HTTP-spørringer, inkludert GET, POST, PUT og PATCH, lagre miljøer for senere bruk og konvertere APIer til kode på en rekke forskjellige språk.
Hvert trinn i API-syklusen er gjort enklere med Postman, og samarbeidet er strømlinjeformet for raskere API-utvikling.
I tillegg lar det utviklere administrere dokumentasjon, spesifikasjoner, testtilfeller, prosesser og API-kataloger.
26. Hvordan holdes REST APIer sikre?
Siden REST APIer ikke bruker like strenge sikkerhetstiltak som SOAP APIer, bør ikke sensitive data sendes eller hentes ved hjelp av dem.
Imidlertid fortsetter pålitelige REST APIer å integrere sikkerhetskontroller for trygge og pålitelige dataoverføringer.
- Autentisering og autorisasjon: Hver eneste forespørsel til API-en må bestå disse to kontrollene. Å bekrefte klientens identitet gjennom autentisering og validere at de har autoritet til å få tilgang til de forespurte ressursene gjennom autorisasjon er to forskjellige prosesser.
- Validering: Før API-en gir tilgang til ressursene sine, må forespørsler fortsatt sjekkes for mulig skadelig kode etter autentisering og autorisasjon. En server vil dermed være åpen for et injeksjonsangrep.
- Validering: Før API-en gir tilgang til ressursene sine, må forespørsler fortsatt sjekkes for mulig skadelig kode etter autentisering og autorisasjon. En server vil dermed være åpen for et injeksjonsangrep.
- Kryptering: TLS/SSL-kryptering beskytter forbindelsen mellom klienten og serveren og hindrer hackere i å avskjære forespørsler og svar.
- Hastighetsbegrensende teknikker, som grenser og struping, beskytter servere mot brute-force-angrep som DDoS som tar sikte på å forringe eller krasje dem.
- Ingen sensitiv informasjon i URIer: Ressursers URIer skal ikke inneholde beskyttede data (som brukernavn, passord eller autentiseringstoken).
konklusjonen
Gratulerer! Flere grunnleggende til komplekse REST API-intervjuspørsmål og deres respektive løsninger er nå for hånden.
Nå som du har et godt konsept for hvordan du skal svare på noen av de typiske REST API-intervjuspørsmålene, kan du fortsette å svare på intervjuene. Det neste trinnet avhenger av målene dine.
Besøk Intervjuserie med Hashdork for å forberede seg til intervjuer.
Legg igjen en kommentar