40 Ofte stillede REST API-interviewspørgsmål og svar [2023]

En API står for Application Programming Interface. Det fungerer som en gateway for applikationer til at få adgang til nogle ressourcer fra andre applikationer.

Fordelen ved at bruge en API er at give adgang til tredjepartsapplikationer, så de ikke kan få adgang til hele din applikations data. De kan kun få adgang til de data, som du eksponerer gennem din API.

Applikationen eller en bruger, der ønsker at få adgang til dataene, er kendt som en klient, og den applikation, der betjener dataene, er kendt som en server.

API’er er meget udbredt i dag i enhver softwarearkitektur. Hvis du ansøger om en front-end-, back-end-, full-stack- eller netværksingeniørrolle, vil du blive stillet en masse spørgsmål vedrørende API’er.

Når det er sagt, lad os undersøge nogle af de hyppigst stillede interviewspørgsmål om REST API’er.

Hvad er REST?

Svar: REST er et arkitektonisk design, der definerer nogle begrænsninger for, hvordan API’er fungerer. API’erne, der følger principperne for REST, er kendt som RESTful API’er. REST står for Repræsentativ Statsoverførsel.

Det er ikke en protokol eller en standard; i stedet er det en arkitektur, der kan bruges til at implementere API’er på forskellige måder.

Det giver høj fleksibilitet og frihed til udviklere, og det er derfor, det er meget brugt til at udvikle API’er. Her er nogle af principperne for en REST-arkitektur:

  • Adskillelse af klient og server: I en RESTful API bør klienten ikke påvirke serveren på anden måde end at anmode om data gennem en URI (Uniform Resource Identifier). På samme måde bør serveren ikke ændre indholdet af klienten på nogen måde.
  • Statsløshed: Når der fremsættes to separate anmodninger, kender de ikke til hinanden. Med andre ord er anmodningerne statsløse og opretholder ikke en tilstand. Hvis en anmodning opfyldes, afsluttes den blot. Hver anmodning er isoleret fra andre anmodninger.
  • Layered Architecture: Klienten eller serveren ved ikke, om anmodningen sendes direkte til oprindelsen eller en mellemliggende applikation. De bekymrer sig kun om svaret på anmodningen.
  • Caching: Data eller svar kan cachelagres på klient- og serversiden for at forbedre ydeevne og skalerbarhed. Hvis der er hyppige anmodninger om en bestemt ressource, kan svaret på den anmodning cachelagres og bruges efter behov.

Hvad er nogle nøglekarakteristika ved REST?

Svar: Nøglekarakteristika eller funktioner ved REST er:

  • Fleksibilitet: Du kan flytte fra en server til en anden, og det ændrer ikke noget, fordi API’en sender det samme svar for en bestemt anmodning. Du kan også tilføje så mange endepunkter, som du vil, for forskellige typer data.
  • Skalerbarhed: Caching forbedrer skalerbarheden på grund af, at svarene gemmes til senere brug. Det mindsker belastningen på serveren og reducerer også latens.
  • Autorisation: Ved hjælp af Autorisationshovedet kan du angive de legitimationsoplysninger, som serveren kan bruge til at godkende anmodningen.
  • Statsløshed: Dette er den vigtigste egenskab ved REST, fordi det forhindrer anmodninger i at vide, hvad der sker med andre anmodninger. Anmodninger isoleres og afsluttes, så snart de er opfyldt.

Hvad er ressourcer i en REST-arkitektur?

Svar: Ressourcer er enheder, som forskellige handlinger udføres på, såsom hentning, opdatering eller sletning. De er de grundlæggende byggesten i REST-arkitekturen.

  Sådan ændrer du din placering i Google Chrome

Hvis du for eksempel overvejer en online e-handelsbutik, betragtes produkterne, brugerne samt metadata som ressourcer, fordi de kan betjenes. Ressourcer kan overføres til en anden applikation via API.

Nævn nogle fordele og ulemper ved en REST API.

Svar: Fordelene ved REST API’er er som følger:

  • Det er nemt at implementere.
  • Ressourcer kan nemt håndteres.
  • Det er skalerbart på grund af klient-server-arkitektur.
  • Understøtter flere dataoverførselsmedietyper såsom XML og JSON.

Dens ulemper er:

  • Du kan ikke opretholde en tilstand mellem anmodninger.
  • Den sande oprindelseskilde for ressourcen kan ikke kendes på grund af lagdelt arkitektur.
  • Ikke god til komplekse forespørgsler eller anmodninger.

Definer REST skabelon.

Svar: En REST-skabelon er et hjælpeprogram eller en klient, hvorigennem du kan få adgang til REST API’er i Spring-rammerne. Det skjuler dybest set den boilerplate-kode, du muligvis skal skrive for at anmode om en ressource fra en REST API.

Hvad er RESTful?

Svar: RESTful API’er eller tjenester er grænseflader, der implementerer REST (Representational State Transfer) arkitektoniske stil og arbejder ved hjælp af protokoller såsom HTTP.

Hvad er RESTful Web Services?

Svar: RESTful webtjenester er bygget til at fungere bedst på nettet. Representational State Transfer (REST) ​​er en arkitektonisk stil, der specificerer begrænsninger, såsom den ensartede grænseflade, lagdelt arkitektur og statsløshed, hvis den anvendes på en webtjeneste, inducerer ønskelige egenskaber, såsom ydeevne og skalerbarhed, der gør det muligt for tjenester at fungere bedst på internettet.

Hvordan kan du teste RESTful Web Services?

Svar: For at teste en RESTful-webtjeneste kan du bruge en REST-klient som Postman eller Thunder Client og forespørge på den webtjeneste, du vil teste. Så, når du får et svar, forstå svaret; det er nøgledelen.

Hvis du vil teste en kompleks API med mange endepunkter, skal du muligvis nedbryde test og udføre enhedstest, integrationstest, ydeevnetest og end-to-end test.

Nævn nogle funktioner i RESTful Web Services.

Svar: Nogle af nøglefunktionerne i RESTful webtjenester er:

  • Understøttelse af flere medietyper såsom JSON og XML.
  • Skalerbarhed
  • Isolering af klient og server
  • Fleksibilitet

Definer RESTful Root Resource Classes.

Svar: Rodressourceklasser er “almindelige gamle Java-objekter” (POJO’er), der enten er kommenteret med @Path eller har mindst én metode annoteret med @Path eller en anmodningsmetodedesignator, såsom @GET, @POST, @PUT eller @SLET.

Hvad er URI?

Svar: URI står for Uniform Resource Identifier. Det er en sekvens af tegn, der bruges til at lokalisere eller identificere ressourcer for en API eller en tjeneste. Den bruger navnet eller placeringen af ​​ressourcen til at identificere den, men den er ikke afhængig af en bestemt metode eller teknik.

Hvad er statsløshed i hvile?

Svar: Statsløshed refererer til én begrænsning, der anvendes på en API, hvor to anmodninger ikke kan vide, hvad der sker med hinanden. Med andre ord opretholdes anmodningernes tilstand ikke. Hvis anmodningen er opfyldt, afsluttes den blot efter at have modtaget et svar.

Hvad er JAX-RS?

Svar: JAX-RS er en Java API, der gør dig i stand til at udvikle applikationer i Java, der bruger REST-arkitekturen. Denne API gør det nemt at udvikle REST-applikationer i Java.

Hvad er nøgleanmærkningerne i JAX-RS API?

Svar: Annoteringer i JAX-RS bruges af udviklere til at dekorere Java-klasser for at definere ressourcer og metoder, der kan udføres på disse ressourcer. Nogle nøgleannotationer af JAX-RS API er:

  • @GET: Det bruges til at lave GET-anmodninger i HTTP.
  • @POST: Det bruges til at lave POST-anmodninger i HTTP.
  • @Sti: Det refererer til den relative sti til en Java-klasse.
  • @QueryParam: Det refererer til forespørgselsparametrene for URI’en eller URL’en.

Hvad er nogle nøglefunktioner i JAX-RS API?

Svar: Funktionerne i JAX-RS er:

  • Caching på klientsiden
  • Caching på serversiden
  • Tilpasning af forespørgselsstreng
  • Runtime annotationer

Hvordan kan JAX-RS-applikationerne konfigureres?

Svar: En JAX-RS-applikation består af mindst én ressourceklasse pakket i en WAR-fil. Den basis-URI, hvorfra en applikations ressourcer svarer på anmodninger, kan indstilles på en af ​​to måder:

  • Brug af @ApplicationPath-annotationen i en underklasse af javax.ws.rs.core.Application pakket i WAR
  • Brug af servlet-mapping-tagget i WAR’s web.xml-implementeringsdeskriptor

Hvad er JAX-WS og JAX-RS?

Svar: JAX-WS er ​​en Jakarta XML Web Services API, der bruges til at udvikle API’er ved hjælp af Simple Object Access Protocol (SOAP) – en XML-baseret meddelelsesprotokol.

På den anden side er JAX-RS en Java API, der bruges til at skabe webtjenester ved hjælp af REST-arkitekturen.

Hvad er HTTP-statuskoder?

Svar: Statuskoder er intet andet end en måde at kommunikere status på svaret sendt af serveren til klienten. De er til stede i svarheaderne sendt af serveren.

  Lukker MZ Game of War ned?

Klienten er i stand til at finde ud af, om anmodningen er mislykket eller blevet opfyldt, eller om der er noget galt med svaret ved at bruge statuskoderne.

Her er nogle almindelige statuskoder for HTTP:-

  • 200 – Det står for “OK” nøgleord. Det betyder, at anmodningen er blevet opfyldt, og svaret er i orden.
  • 404 – Det står for “Ikke fundet”. Dette betyder, at en ressource ikke er til stede på serveren, eller at der ikke findes et slutpunkt.
  • 500 – Det står for “Intern serverfejl”. Dette sker normalt, når serveren ikke kan generere det korrekte svar, eller der er en fejl, der ikke udtrykkeligt er smidt.
  • 503 – Det står for “Service Unavailable”. Det betyder, at serveren i øjeblikket ikke kan behandle nogen anmodninger, sandsynligvis fordi den er død eller ikke fungerer på grund af anmodningsoverbelastning. Det kan også forekomme, når serveren skal vedligeholdes.

Hvad er HTTP-metoder?

Svar: HTTP-metoder bruges til at udføre en bestemt type handling på en bestemt ressource i en API. For eksempel, hvis du vil hente en liste over film fra en filmindsamlings-API, så kan du bruge GET-metoden leveret af HTTP. Hvis du vil opdatere dataene, kan du bruge POST-metoden fra HTTP.

Ofte anvendte HTTP-metoder er som følger:

  • GET: Forespørgsler, der bruger GET, bør kun hente data.
  • POST: Den opdaterer ressourcen ved at sende en nyligt opdateret ressource til serveren.
  • SLET: Det sletter den angivne ressource.
  • PATCH: Det ændrer delvist ressourcen.

Hvordan fungerer grundlæggende HTTP-godkendelse?

Svar: Autentificering er en proces til at verificere ægtheden af ​​en klient for at opretholde datasikkerheden. I HTTP fungerer godkendelse gennem en autorisationsheader, som sendes af klienten.

Authorisation Header består af klientens brugernavn/id og adgangskode, som derefter verificeres af serveren, og der gives adgang.

En vigtig ting at bemærke her er, at når du bruger HTTP-godkendelse, skal den kanal, som legitimationsoplysningerne passerer, være krypteret og sikker.

Du kan sikre kanalen ved hjælp af SSL-laget, som er integreret i HTTPS. Så det anbefales at bruge HTTPS i stedet for simpel HTTP, når du har at gøre med legitimationsoplysninger.

Hvad er kernekomponenterne i HTTP-anmodning?

Svar: En HTTP-anmodning består af følgende komponenter:

  • Anmodningslinje: Det er den første linje i enhver anmodning og består af HTTP-metoden, stien eller slutpunktet og HTTP-versionsnummeret.
  • Headere: HTTP-headere bruges til at levere metadata for anmodningen.
  • Brødtekst (valgfrit): Denne komponent er kun til stede for nogle af anmodningsmetoderne. Det er ikke påkrævet for GET-anmodninger, men det er påkrævet til POST-anmodninger. Det er selve budskabet i anmodningen.

Hvad er kernekomponenterne i HTTP-svar?

Svar: Et HTTP-svar består af følgende komponenter:

  • Status: Det refererer til HTTP-statuskoden, som sendes af serveren.
  • Overskrifter: Ligesom anmodninger har svar også deres respektive overskrifter, som giver nyttige oplysninger om svaret.
  • Besked: Dette er de faktiske data, der sendes af serveren til klienten for at anmode om en bestemt ressource.

Hvad er forskellen mellem REST og AJAX?

Svar: AJAX er en klient, hvorigennem du kan få adgang til RESTful API’er. Det bruges til at sende asynkrone anmodninger ved hjælp af JavaScript.

REST, eller Representational State Transfer, er en arkitektur, der kan implementeres til at skabe RESTful API’er. Kort sagt, for at sende HTTP-anmodninger kan du bruge AJAX, der fungerer som en klient, men hvis du vil implementere RESTful API’er, så skal du bruge REST-arkitektur.

Hvad er forskellen mellem SÆBE og HVILE?

Svar: Representational State Transfer, eller REST, er en arkitektur med minimale begrænsninger til at skabe API’er. SOAP, eller Simple Object Access Protocol, er en protokol med strenge krav til implementering af en API.

REST er mere fleksibel og nem at bruge end SÆBE. XML-baseret meddelelser bruges i SOAP, mens du i REST kan bruge mange dataoverførselstyper såsom JSON, XML osv. Sammenlignet med SOAP er REST mere let og hurtig.

SOAP webtjenester har indbygget sikkerhed, hvilket er en fordel ved at bruge SOAP frem for REST, men de tilføjede funktioner gør det også komplekst og tungt at bruge.

Hvad er forskellen mellem PUT og POST?

Svar: POST er en HTTP-anmodningsmetode, der sender nogle data til serveren. Hvis du laver flere POST-anmodninger for en bestemt ressource, kan der være bivirkninger ved dine data. Hvis du f.eks. vil tilføje en artikel til en samling, og hvis du laver flere POST-anmodninger, vil flere artikler blive tilføjet til samlingen, hvilket fører til overflødige artikler.

  Top 11 ressourcer til datavidenskab og maskinlæring

PUT er en HTTP-anmodningsmetode, der sender data til serveren for en bestemt ressource, men kun opdaterer dataene én gang. Hvis du sender flere PUT-anmodninger for en bestemt ressource, vil der ikke opstå bivirkninger, og dataene tilføjes kun én gang. I PUT, hvis ressourcen ikke eksisterer, vil den oprette en ny, og hvis den findes, vil den opdatere den eksisterende.

PUT er idempotent, mens POST ikke er det.

Hvad er en nyttelast?

Svar: En nyttelast i en REST API er blot kroppen af ​​anmodningen sendt fra klienten til serveren. Det er de data, du vil sende til serveren og få et svar.

Hvad er den maksimale nyttelaststørrelse, der kan sendes i postmetoder?

Svar: Der er ingen standardgrænse sat af selve HTTP-protokollen. Grænsen kan afhænge af den maksimale grænse for klienten eller serveren, alt efter hvad der er minimum.

Hvad er de bedste fremgangsmåder, der skal følges, mens du opretter URI?

Svar: Nogle af de vigtigste punkter, du skal huske på, når du designer URI’er, er:

  • Undgå at bruge filtypenavne
  • Vær konsistent med alle URI’er
  • Opdel URI’erne i domæner og underdomæner for forskellige sæt ressourcer
  • Du bør bruge bindestreg eller understregning til at adskille ord i sætninger, der er indlejret i URI’er
  • Du bør bruge skråstreg for at angive et hierarki af ressourcer
  • Indkode en URI ved hjælp af korrekt kodning
  • Prøv at gøre URI’en læselig for mennesker

Hvad er idempotente metoder?

Svar: Idempotente HTTP-metoder har samme effekt på serveren på trods af at de sender flere identiske anmodninger. For eksempel, hvis du sender flere identiske DELETE-anmodninger for en bestemt ressource, ændres ressourcen ikke ved hver anmodning; den vil opdatere, som om der kun er sendt én anmodning.

Nogle af de idempotente metoder omfatter:

  • SÆTTE
  • SLET
  • HOVED
  • MULIGHEDER

Hvad er Postmand?

Svar: Postman er et API-udviklingsværktøj til at udvikle, ændre og teste API’er. Det giver mange funktioner til at bygge og teste API’er hurtigt uden behov for at konfigurere en klient.

Svar: Cache-Control-headeren består af instruktioner eller direktiver til at konfigurere caching i browsere og servere. Den fortæller browseren eller serveren, hvad den skal cache, og hvor længe den skal cache, før den anmodes om via netværksanmodningen.

Cache-Control-headeren indeholder følgende direktiver:-

  • max-alder
  • ingen cache
  • privat
  • offentlig
  • ingen butik
  • uforanderlig

Definer meddelelser i RESTful Web Services.

Svar: Beskeder i RESTful webtjenester refererer til, at klienten sender en HTTP-anmodning til serveren, som serveren svarer på med et HTTP-svar. Denne kommunikation mellem klienten og serveren kaldes meddelelser.

Hvad er forskellen mellem monolitisk, SOA- og mikroservicearkitektur?

Svar: I en monolitisk arkitektur styres alt ét sted. Klientsiden, serveren samt databasen styres alle fra et enkelt sted. Det er derfor, det er kendt som monolitisk, fordi ordet “monolit” refererer til en enkelt blok eller sten.

SOA står for Service-Oriented Architecture. I denne arkitektur styres forskellige aspekter af applikationen af ​​forskellige tjenester, som også er software. Så det er en kombination af flere servicesoftwaremoduler. Integration er nøgledelen af ​​denne arkitektur.

Microservices-arkitektur ligner SOA, men i modsætning til SOA har den flere autonome softwareprogrammer, der taler med hinanden ved hjælp af API’er. I modsætning til monolitisk arkitektur er alt her autonomt og til en vis grad uafhængigt.

Hvordan fungerer mikroservicearkitektur?

Svar: I en mikroservicearkitektur er applikationerne opdelt i mindre underenheder, der er uafhængige af hinanden og fungerer på egen hånd, men de kommunikerer med hinanden via et veldefineret sæt API’er.

Nogle fordele ved mikroservicearkitektur omfatter smidighed, fleksibilitet, skalerbarhed, uafhængige teknologier, genanvendelige tjenester og nem implementering.

Hvad er CRUD?

Svar: CRUD står for Create, Read, Update, Delete. Det er de operationer, der kan udføres på en bestemt ressource. API’en, der understøtter alle disse operationer, er kendt som en CRUD API. Dette er de mest basale operationer, som kan udføres af en API på en ressource.

Hvad er caching?

Svar: Caching er en teknik til at gemme et svar eller en anmodning på klienten eller serveren for at blive brugt igen senere.

Svar cachelagres generelt på klienten, fordi hvis klienten laver den samme anmodning flere gange i et kort tidsinterval, giver det ingen mening at anmode om svaret igen over netværket og spilde båndbredden.

Hvad er brugen af ​​@RequestMapping?

Svar: Det er en annotation i forårets rammer, som bruges til at kortlægge webforespørgsler på specifikke handlerklasser og/eller handlermetoder.

Hvad gør @PathVariable?

Svar: @PathVariable-annotationen i springrammerne bruges til at udtrække værdien af ​​skabelonvariablerne og tildele deres værdi til en metodevariabel.

Definer HttpMessageConverter.

Svar: Når en HTTP-anmodning (eller dele af den) skal konverteres til en type, der er nødvendig som argument for en behandlermetode, eller når den værdi, der returneres af en behandlermetode, skal konverteres på en eller anden måde for at skabe et HTTP-svar, HTTP meddelelseskonvertere bruges.

Svar: Nogle værktøjer, der kan hjælpe dig med API-testning, er som følger:

  • Postbud
  • Stol trygt på
  • Hvil skarpt
  • Katalon
  • ReadyAPI
  • Apigee

Afsluttende ord

I dag er API’er blevet ekstremt populære på grund af internettets fremkomst. En anden grund til, at REST API’er er populære, er, at de er nemme at udvikle og nemme at bruge.

Hvis du forbereder dig til et interview, så overvej ovenstående spørgsmål om REST API’er, der kan blive stillet i dit interview.

Dernæst kan du tjekke, hvordan du skraber et websted ved hjælp af toadmin.dk’s Web Scraping API.