Indholdsfortegnelse[Skjule][At vise]
- 1. Hvad forstår du ved REST?
- 2. Hvad mener du med REST API?
- 3. Hvad er URI helt præcist?
- 4. Hvad er kendetegnene ved RESTful Web Services?
- 5. Hvad er de vejledende principper for REST?
- 6. Nævn de HTTP-metoder, som REST understøtter.
- 7. Beskriv de begrænsninger, som en konsistent grænseflade har.
- 8. Hvad er egentlig en REST-ressource?
- 9. Hvad betyder JAX-RS for dig?
- 10. Hvad adskiller AJAX og REST fra hinanden?
- 11. Kan du nævne nogle RESTful webtjenester ulemper?
- 12. Hvad adskiller PUT- og POST-teknikker fra hinanden?
- 13. Hvordan tester du RESTful webtjenester?
- 14. Beskriv en REST API i den virkelige verden.
- 15. Hvordan fungerer Microservice Architecture?
- 16. Hvad er caching helt præcist?
- 17. Beskriv nyttelast.
- 18. Differentiere SÆBE VS HVILE?
- 19. Kan transportlagsikkerhedsprotokollen (TLS) bruges sammen med REST?
- 20. Idempotente metoder: hvad er de? Hvordan gælder det for en verden af RESTful webtjenester?
- 21. Hvad er funktionaliteten af HTTP Basic Authentication?
- 22. Tror du, at GraphQL er det bedste valg til at skabe mikroservicearkitektur?
- 23. Hvad er de vigtigste forskelle mellem de sikre og idempotente HTTP-metoder?
- 24. Hvad indebærer JAX-RS API af RESTful Root Resource Classes?
- 25. Hvad er Postman egentlig, og hvorfor bruges det?
- 26. Hvordan holdes REST API'er sikre?
- Konklusion
RESTs udvikling har gjort API'er utroligt tilgængelige, samtidig med at de afslører deres fulde styrke og potentiale. REST API'er er nemme at oprette og cache på grund af deres ressourceorienterede arkitektur.
Derudover var RESTful API'er gennem tiden forløbere for andre væsentlige udviklinger som cloud computing og mikroservice-baseret design.
Derfor bør det ikke komme som nogen overraskelse, at REST API-udviklere er efterspurgte i dag i betragtning af, hvordan de giver virksomheder, der anvender RESTful-tjenester, en konkurrencefordel. REST API'er er en populær designtrend.
Mange it-firmaer ønsker REST API viden fra softwareudviklere og spørg om det i tekniske interviews.
Her er nogle af de mest typiske REST API-interviewspørgsmål, der vil hjælpe dig med at være klar til interviews hos forskellige firmaer, hvis du ønsker at arbejde i REST API-udviklingsområdet.
1. Hvad forstår du ved REST?
REST er et arkitektonisk paradigme til design af webbaserede applikationer, der er baseret på Hypertext Transfer Protocol (HTTP).
REST definerer visse standarder, som webtjenester skal opfylde for at blive betragtet som RESTful. Disse anbefalinger garanterer, at anmodninger og ressourcer overføres hurtigt og effektivt mellem klient og server ved hjælp af standardiserede HTTP-protokoller.
2. Hvad mener du med REST API?
Et software-til-software-link kendt som en applikationsprogrammeringsgrænseflade muliggør kommunikation og datadeling mellem ellers uafhængige programmer. For eksempel kunne et nyhedswebsted bruge Twitter API til automatisk at opdage relevante tweets og integrere dem i nyhedshistorier.
En API, der overholder REST-principperne, er kendt som en REST API, nogle gange kendt som en RESTful API. I en REST API håndteres hvert stykke data som en ressource og får en særskilt standard ressourceidentitet (URI).
For eksempel gør Twitter API'en hvert tweet til en genfindelig ressource, der er tilgængelig for kunder. Twitter API kan bruges af brugere til at sende tweets og udføre andre hjemmesideopgaver.
3. Hvad er URI helt præcist?
A computer netværk ressource kan henvises til ved hjælp af en URI eller ensartet ressource-id. Det tjener som et middel til at adskille en ressource fra en anden. Kilderne er muligvis online eller ikke.
På grund af deres standardstruktur gør URI'er det nemt at oprette forbindelse til selv forskellige typer ressourcer. Placeringen eller navnet på ressourcen er inkluderet i URI'er sammen med en streng af tegn.
URI'en består af en sti, et skema, en forespørgsel og andre elementer, men inkluderer ikke protokollen.
Ved hjælp af en protokol bruges URL'er (Uniform Resource Locators) til at finde ressourcer på internettet eller tilgængelige via det.
4. Hvad er kendetegnene ved RESTful Web Services?
- Client-Server-paradigmet er grundlaget for tjenesten.
- Tjenesten kan få adgang til ressourcer ved at bruge URI'er.
- Tjenesten bruger HTTP-protokollen til at erhverve data/ressourcer, køre forespørgsler og udføre andre opgaver.
- Messaging er navnet på den metode, der bruges til at kommunikere mellem klienten og serveren.
- Disse tjenester kan også implementere REST-arkitektoniske mønster ved hjælp af SOAP-tjenester.
- For at reducere serverkald for den samme slags gentagne anmodninger anvender disse tjenester også ideen om caching.
5. Hvad er de vejledende principper for REST?
Fem kriterier skal opfyldes af REST API'er:
Klient-server-afkobling: Kun en række anmodninger og svar kan bruges til at kommunikere mellem klienten og serveren. Kun klienter og servere er i stand til at sende henholdsvis anmodninger og svar. Denne ligetil idé gør det muligt for begge parter at fungere uafhængigt af hinanden.
Ensartet grænseflade: Der skal være en ensartet protokol for alle klient-serverforbindelser. Denne protokol for REST er HTTP. Fordi hver applikation anmoder om og sender data ved hjælp af det samme sprog, gør en ensartet grænseflade integrationer nemmere.
Stateless: Serveren gemmer ingen registreringer af tidligere anmodninger eller svar i statsløs kommunikation. Hver anmodning og svar giver alle de detaljer, der kræves for at fuldføre udvekslingen. Statsløs kommunikation øger hastigheden, sparer hukommelse og mindsker stresset på serveren. Derudover undgår det potentialet for, at en anmodning mislykkes på grund af ufuldstændige data.
Lagdelt system: Servere, der ligger mellem klienten og API-serveren, omtales som lag. Disse ekstra servere udfører en række tjenester, såsom at opdage spam og optimere hastigheden. Lag i REST er modulære, hvilket betyder, at de kan tilføjes og slettes uden at påvirke kommunikationen mellem klienten og API-serveren.
Cachebar: Klienter kan cache alle ressourcer for at øge hastigheden, hvis serversvar angiver, om ressourcen er cachebar eller ej.
On-demand-kodning: Som svar kan en API overføre eksekverbar computerkode til kunder. Klientapplikationen kan derefter køre koden på sin egen bagende.
6. Nævn de HTTP-metoder, som REST understøtter.
De HTTP-metoder, som REST understøtter, er:
- GET: Denne metode beder om en ressource på den angivne URL. En anmodningstekst bør ikke inkluderes, fordi den vil blive ignoreret. Det kan være muligt at cache det lokalt eller på serveren.
- POST: Denne metode sender data til en tjeneste til behandling, og tjenesten skal normalt returnere en ny eller ændret ressource.
- PUT: Ressourcen opdateres på anmodningens URL.
- SLET: Ressourcen slettes ved anmodningens URL.
- Indstillinger: Det identificerer de understøttede metoder.
- HEAD: Anmodnings-URL's metadata returneres.
7. Beskriv de begrænsninger, som en konsistent grænseflade har.
For at adskille klienten fra serveren kræves en ensartet grænseflade.
For at opnå en ensartet grænseflade kræves følgende fire begrænsninger:
- Ressourceidentifikation: Kundeanmodninger skal bruge standardressource-id'er til at identificere ressourcer (URI'er)
- Ressourcemanipulation ved hjælp af disse repræsentationer: Klienter har alle de nødvendige oplysninger for at kunne ændre ressourcetilstand, når de får en ressourcerepræsentation fra serveren.
- Selvbeskrivende beskeder: Meddelelser inkluderer alle metadata og andre oplysninger, der kræves for, at modtageren kan forstå dem.
- Hypermedia som applikationstilstandsmotor: Kanalen for klient-server-kommunikation er hypermedier, såsom HTML, og klienter behøver ikke API-specifik dokumentation for at forstå serversvar.
8. Hvad er egentlig en REST-ressource?
Ressourcer er de grundlæggende komponenter i en RESTful webservice i en REST-arkitektur. De inkluderer alle vigtige oplysninger, som en API-klient skal have adgang til.
Enhver form for ressourcer, såsom en HTML-side, et billede, en video eller andet, der er nødvendigt for en API-aktivitet, kan tilgås via serveren i et klient-server-system.
Ressourcerne identificeres af en Uniform Resource Identifier. Tekst, JSON eller XML er alle acceptable repræsentationer af ressourcer. Efter at have sagt det, er der ingen begrænsninger på repræsentationens format.
9. Hvad betyder JAX-RS for dig?
Det er nemmere at oprette RESTful webtjenester i Java takket være Java API for RESTful webtjenester, ofte kendt som JAX-RS. Udviklere kan beskrive ressourcer og de operationer, der kan udføres på dem ved hjælp af de annoteringer, der leveres.
10. Hvad adskiller AJAX og REST fra hinanden?
Ajax:
- Ajax er en gruppe af teknologier, der giver mulighed for dynamisk opdatering af brugergrænseflade elementer uden at skulle genindlæse siden.
- Ajax fjerner asynkron kommunikation mellem klienten og serveren.
HVILE:
- REST kræver kommunikation mellem serveren og klienten.
- Udnyttelsen af ressourcer er vigtig for URL-strukturen og anmodnings-/svarmønsteret, der bruges af REST.
11. Kan du nævne nogle RESTful webtjenester ulemper?
Sessioner kan ikke holdes, da tjenesterne overholder begrebet statsløshed. (Klienten er ansvarlig for at videregive session-id'et under hele simuleringen af sessionen.)
Sikkerhedsbegrænsninger er ikke grundlæggende for REST. De protokoller, der bruger det, arver sikkerhedsforanstaltningerne. Derfor er det vigtigt at være forsigtig, mens du sætter sikkerhedsforanstaltninger på plads, såsom at integrere SSL/TLS-baserede godkendelser.
12. Hvad adskiller PUT- og POST-teknikker fra hinanden?
SÆTTE:
- Der er ingen cache til PUT-svar.
- Idempotent (dvs. flere anmodninger vil give det samme resultat)
- anmodningens nyttelast opdaterer eller erstatter målressourcen.
STOLPE:
- idempotent ikke (dvs. flere anmodninger vil give multipla af den samme ressource)
- Webserveren behandler nyttelasten af anmodningen baseret på den tilsigtede ressource.
- Hvis den relevante cache-kontrol-header er inkluderet, kan POST-svar cachelagres.
13. Hvordan tester du RESTful webtjenester?
RESTful webservicetest kan hjælpes af en række værktøjer, herunder Swagger og Postman. Inspicering af anmodningsparametre som forespørgselsparametre, overskrifter og svaroverskrifter er muliggjort af sidstnævntes overflod af funktioner.
Postmand kan bruges til at fremsætte anmodninger til slutpunkter og vise resultaterne. Og XML og JSON kan oprettes ud fra disse svar.
Postman og Swagger giver begge ekstremt sammenlignelige funktioner. På den anden side tilbyder Swagger også funktioner som slutpunktsdokumentation.
14. Beskriv en REST API i den virkelige verden.
- Rejse- og billetwebsteder kan udnytte de flytider og priser, som flyselskaberne gør tilgængelige via API'er.
- For at kort- og navigationsapps (som Google Maps) kan bruge dem, gør offentlige transportbureauer ofte deres data offentligt tilgængelige i realtid via API'er.
- Vejrapplikationer bruger åbne API'er, der udveksler vejrdata for at vise vejrinformation.
- Udviklere kan få adgang til Google Maps' kortlægningsdata via en række af dets hostede API'er. Disse API'er bruges af udviklere til at integrere dynamiske kort i deres apps og websteder.
15. Hvordan fungerer Microservice Architecture?
- Forespørgsler sendes af forskellige kunder ved hjælp af forskellige enheder.
- Efter at have bekræftet klienternes identiteter, leverer identitetsudbydere sikkerhedstokens.
- Klientanmodningerne administreres af API Gateway.
- Alt systemets materiale er bevaret som statisk indhold.
- Styringsværktøjet tjekker balancen mellem tjenester på noder og eventuelle fejl.
- Opdagelse af kommunikationsvejen mellem mikrotjenester er hjulpet af serviceopdagelse.
- Datacentre og proxyservere udgør spredte netværkssystemer kaldet indholdsleveringsnetværk.
- Fjerntjenester giver informationsadgang på afstand.
16. Hvad er caching helt præcist?
Praksis med midlertidigt at opbevare en kopi af et serversvar et eller andet sted (såsom computerhukommelse) for at få adgang til det senere hurtigere er kendt som caching.
Caching øger serverhastigheden ved brug af REST API'er ved at reducere mængden af arbejde, serveren skal udføre for at imødekomme anmodningen. Applikationer, der bruger API'et, kører hurtigere takket være caching, fordi de ikke behøver at indsende en ny anmodning, hver gang de har brug for en ressource.
HTTP-svar-headerens Cache-Control-felt indeholder oplysninger om, hvor længe en ressource kan cachelagres af klienten, før den skal tilgås igen.
17. Beskriv nyttelast.
Nyttelasten i REST refererer til informationen indeholdt i HTTP-svarets brødtekst. Kunden brugte GET-teknikken til at anmode om de pågældende data.
Dokumentet, der indeholder tweetteksten og eventuelle nødvendige filer til at placere tweetet på et websted, vil blive inkluderet i nyttelasten, for eksempel hvis du beder Twitter API om et specifikt tweet. Derudover kan nyttelasten inkluderes i HTTP-anmodningen ved hjælp af POST-metoden.
18. Differentiere SÆBE Vs HVILE?
- I modsætning til SOAP, som kun kan håndtere XML, muliggør REST en bredere vifte af ressourceformater, herunder XML, tekst, HTML, billeder, video og mere.
- Når sikkerhed er afgørende for online applikationer, er SOAP nyttig. REST kan ikke bruges, når transaktioner skal gennemføres sikkert, da det ikke er særligt sikkert.
- Da SOAP kun er en protokol, kan REST bruge den i sine webtjenester, men ikke omvendt.
- Mens REST kun er et arkitektonisk mønster, der bruges til at udvikle webtjenester og overholder visse begrænsninger såsom klient-server-opsætning, tilstandsløshed, cache-svar, lagdelte systemer og ensartet interface, er SOAP en protokol, der fungerer på bestemte standarder, der skal overholdes strengt til.
- Mens REST bruger universelle ressourceidentifikatorer (URI'er), bruger SOAP servicegrænseflader til at levere sine muligheder til klientapplikationer. REST har et lavere båndbreddebehov end SOAP, da SOAP-meddelelser er mere informationstunge.
19. Kan transportlagsikkerhedsprotokollen (TLS) bruges sammen med REST?
Det kan vi faktisk. REST-klienten og serverens kommunikation er krypteret via TLS, og protokollen giver også klienter mulighed for at autentificere servere.
På grund af det faktum, at det er Secure Socket Layers erstatning, bruges det til sikker kommunikation (SSL). Implementering af RESTful-webtjenester er vellykket med HTTPS, fordi det samarbejder effektivt med både TLS og SSL.
REST arver egenskaberne af den protokol, den implementerer, hvilket er én ting at bemærke her. Som følge heraf er sikkerhedsbeskyttelsen afhængig af den protokol, som REST bruger.
20. Idempotente metoder: hvad er de? Hvordan gælder det for en verden af RESTful webtjenester?
Når URI'en er den samme, har nogle HTTP-metoder i en anmodning samme indflydelse på serveren, uanset om de leveres én eller flere gange. Idempotente teknikker er, hvad disse er kendt som.
For eksempel, uanset hvor mange gange en URI ved hjælp af GET-metoden køres, vil serveren altid opleve det samme resultat. Idempotente metoder omfatter GET, PUT og PATCH, for at nævne nogle få.
Idempotente HTTP-metoder er nogle af dem, der bruges af RESTful webapplikationer. De er nødvendige for at garantere konsistens i RESTful-webtjenesternes aktiviteter.
Kunder, der bruger REST API'er, kan lave kodefejl, der tvinger en REST API til at lave gentagne anmodninger ved et uheld. Disse opkald har potentiale til at misbruge ressourcer.
21. Hvad er funktionaliteten af HTTP Basic Authentication?
Når du bruger Basic Authentication som en del af API'er, skal brugeren indsende brugernavnet og adgangskoden, som er sammenkædet af browseren i formen "brugernavn: adgangskode" og base64-kodet.
Ved hver HTTP-anmodning fra browseren leveres den kodede værdi som værdien for "Autorisation"-headeren. Fordi legitimationsoplysningerne netop er kodet, anbefales det at bruge denne formular, når du sender HTTPS-anmodninger, fordi de ikke er sikre og kan opsnappes af enhver, hvis sikkerhedsprotokoller ikke bruges.
22. Tror du, at GraphQL er det bedste valg til at skabe mikroservicearkitektur?
Microservices og GraphQL passer perfekt, fordi GraphQL holder din mikroservicearkitektur hemmelig for dine kunder.
Fra frontenden vil du have, at alle dine data kommer fra en enkelt API, mens du fra bagenden vil opdele dem i mikrotjenester. Den bedste teknik, jeg er klar over for at opnå begge dele, er ved at bruge GraphQL.
Det giver dig mulighed for at opdele din backend i mikrotjenester, mens du stadig giver hver applikation en enkelt API og muliggør joinforbindelser på tværs af data fra forskellige tjenester.
23. Hvad er de vigtigste forskelle mellem de sikre og idempotente HTTP-metoder?
Idempotente metoder giver det samme resultat, når de påberåbes én eller flere gange gennem den samme anmodning. PUT-metoden er idempotent.
Alle sikre måder er idempotente, men ikke alle idempotente metoder er sikre, da sikre metoder ikke ændrer ressourcerne. For eksempel er GET sikkert, da det blot henter data og ikke ændrer ressourcen.
Derudover er den idempotent, hvilket betyder, at den altid vil returnere det samme svar, når den påberåbes.
24. Hvad indebærer JAX-RS API af RESTful Root Resource Classes?
Java Enterprise Edition giver klasser og grænseflader, der overholder JAX-RS API-kravene. Ved hjælp af JAX-RS gøres det nemmere at skabe Java-webtjenester i REST-arkitektonisk stil.
I JAX-RS API er root-ressourceklasser bare "almindelige gamle java-objekter" eller POJO. For at implementere de nødvendige webressourcer anvender de JAX-RS-annoteringer.
De har enten @sti-annoteringer, eller mindst én af deres metoder har @sti-annoteringer. De kan opsummeres som Java-klasser med metoder til at håndtere API-endepunkter.
25. Hvad er Postman egentlig, og hvorfor bruges det?
Et API-udviklingsværktøj kaldet Postman bruges til at oprette, teste og ændre API'er. Dette værktøj kan bruges af udviklere til den funktion, de har brug for til en API. Det forenkler og letter udviklernes arbejde.
Postman gør det nemt at lave en række HTTP-forespørgsler, herunder GET, POST, PUT og PATCH, gemme miljøer til senere brug og konvertere API'er til kode på en række forskellige sprog.
Hvert trin i API-cyklussen er gjort enklere med Postman, og samarbejdet er strømlinet for hurtigere API-udvikling.
Derudover giver det udviklere mulighed for at administrere dokumentation, specifikationer, testcases, processer og API-kataloger.
26. Hvordan holdes REST API'er sikre?
Da REST API'er ikke bruger lige så strenge sikkerhedsforanstaltninger som SOAP API'er, bør følsomme data ikke sendes eller hentes ved hjælp af dem.
Troværdige REST API'er fortsætter dog med at integrere sikkerhedskontroller for sikre og pålidelige datatransmissioner.
- Godkendelse og autorisation: Hver eneste anmodning til API'et skal bestå disse to kontroller. Bekræftelse af klientens identitet gennem godkendelse og validering af, at de har autoritet til at få adgang til de anmodede ressourcer gennem autorisation er to forskellige processer.
- Validering: Før API'en giver adgang til sine ressourcer, skal anmodninger stadig kontrolleres for muligvis skadelig kode efter godkendelse og godkendelse. En server ville således være åben for et injektionsangreb.
- Validering: Før API'en giver adgang til sine ressourcer, skal anmodninger stadig kontrolleres for muligvis skadelig kode efter godkendelse og godkendelse. En server ville således være åben for et injektionsangreb.
- Kryptering: TLS/SSL-kryptering beskytter forbindelsen mellem klienten og serveren og forhindrer hackere i at opsnappe anmodninger og svar.
- Hastighedsbegrænsende teknikker, såsom grænser og drosling, beskytter servere mod brute-force-angreb som DDoS, der har til formål at nedbryde eller nedbryde dem.
- Ingen følsomme oplysninger i URI'er: Ressourcers URI'er bør ikke indeholde beskyttede data (såsom et brugernavn, adgangskode eller godkendelsestoken).
Konklusion
Tillykke! Adskillige grundlæggende til komplekse REST API-interviewspørgsmål og deres respektive løsninger er nu lige ved hånden.
Nu hvor du har en god idé om, hvordan du reagerer på nogle af de typiske REST API-interviewspørgsmål, kan du fortsætte med at svare på interviewene. Det næste trin afhænger af dine mål.
Besøg Interviewserie med Hashdork for at forberede sig til interviews.
Giv en kommentar