40 Frequently Asked REST API-intervjufrågor och svar [2023]

Grundläggande förståelse för API:er och REST

Ett API, eller Application Programming Interface, fungerar som en länk mellan olika applikationer, där en applikation kan anropa resurser från en annan. Det är som en dörr som ger tillgång till specificerade data, utan att avslöja hela applikationens innehåll.

En av de stora fördelarna med att använda API:er är möjligheten att ge åtkomst till tredjepartsapplikationer utan att exponera all data. Man bestämmer exakt vilken information som ska vara tillgänglig via API:et.

Inom denna kommunikationsmodell kallas applikationen eller användaren som begär data för en klient, medan den applikation som tillhandahåller data kallas server. Denna struktur är central i många moderna system.

API:er är nu en grundläggande del av nästan all programvaruarkitektur. Oavsett om du siktar på en roll som frontend-, backend-, full-stack- eller nätverkstekniker, kommer du sannolikt att stöta på många frågor om API:er i jobbsammanhang.

Med detta i åtanke, låt oss dyka in i några av de vanligaste intervjufrågorna som rör REST API:er.

Vad är REST?

REST, vilket står för Representational State Transfer, är en arkitektonisk stil som anger hur API:er ska fungera genom vissa begränsningar. API:er som är designade i enlighet med dessa principer benämns RESTful API:er. Det är viktigt att notera att REST inte är ett protokoll eller en standard, utan snarare en designmodell för hur man bygger API:er.

REST erbjuder utvecklare stor flexibilitet och frihet, vilket gör den till en populär metod för att skapa API:er. Här är några av de grundläggande principerna för en REST-arkitektur:

  • Separation av klient och server: I ett RESTful API ska klienten endast begära data från servern via en URI (Uniform Resource Identifier). Servern ska å sin sida inte modifiera klientens gränssnitt på något sätt.
  • Tillståndslöshet: Varje förfrågan som görs är oberoende av alla andra. Det betyder att servern inte sparar någon information om tidigare förfrågningar, vilket gör varje interaktion isolerad.
  • Skiktad arkitektur: Varken klienten eller servern behöver veta om förfrågan går direkt till den ursprungliga servern eller via en mellanliggande applikation. Fokuset ligger på att leverera rätt svar.
  • Cachning: Data eller svar kan lagras temporärt (cachelagras) på både klient- och serversidan, vilket förbättrar prestanda och gör systemet mer skalbart.

Vilka är några viktiga egenskaper hos REST?

REST kännetecknas av flera viktiga egenskaper:

  • Flexibilitet: REST-API:er kan flyttas mellan olika servrar utan att påverka funktionaliteten, eftersom de alltid levererar samma svar för en given begäran. Dessutom kan man enkelt lägga till nya slutpunkter för olika typer av data.
  • Skalbarhet: Tack vare cachning kan svaren lagras och återanvändas, vilket minskar belastningen på servern och förbättrar responstiderna.
  • Auktorisering: Genom auktoriseringshuvudet kan klienten skicka inloggningsuppgifter till servern för att godkänna begäran.
  • Tillståndslöshet: Detta är en central egenskap som säkerställer att varje förfrågan behandlas oberoende. Efter att en förfrågan har besvarats avslutas den.

Vad är resurser i en REST-arkitektur?

Inom REST refererar en resurs till en entitet som olika operationer kan utföras på, såsom att hämta, uppdatera eller radera. Det är de grundläggande byggstenarna i arkitekturen. Tänk till exempel på en e-handelsbutik online. Produkter, användare och metadata kan alla betraktas som resurser, eftersom de kan manipuleras via API:er.

Nämn några fördelar och nackdelar med ett REST API.

Fördelar:

  • Enkel implementering.
  • Lätt att hantera resurser.
  • Skalbarhet genom klient-server-strukturen.
  • Stöd för flera dataformat som XML och JSON.

Nackdelar:

  • Inget tillstånd mellan förfrågningar.
  • Den exakta källan till resursen kan vara okänd på grund av den skiktade arkitekturen.
  • Inte optimalt för komplexa frågor eller förfrågningar.

Definiera REST-mall.

En REST-mall är ett verktyg eller en klient som gör det enklare att anropa REST API:er i Spring-ramverket. Den förenklar koden som behövs för att begära resurser från ett REST API.

Vad är RESTful?

RESTful API:er eller tjänster är de som följer REST-arkitekturen (Representational State Transfer) och använder protokoll som HTTP.

Vad är RESTful Web Services?

RESTful webbtjänster är specifikt utformade för att fungera bra på webben. De bygger på REST:s arkitektoniska principer, som det enhetliga gränssnittet, skiktad arkitektur och tillståndslöshet. Genom att följa dessa principer får man tjänster som är prestandaoptimerade och skalbara för webbmiljöer.

Hur kan du testa RESTful webbtjänster?

För att testa RESTful webbtjänster kan man använda verktyg som Postman eller Thunder Client. Med dessa klienter skickar man förfrågningar till den tjänst man vill testa och analyserar svaren man får tillbaka.

Om ett API är mer komplext med många slutpunkter, kan det vara nödvändigt att bryta ner testningen i flera delar, till exempel enhetstester, integrationstester, prestandatester och end-to-end-tester.

Nämn några funktioner i RESTful webbtjänster.

Några av de viktigaste funktionerna i RESTful webbtjänster är:

  • Stöd för olika medietyper som JSON och XML.
  • Skalbarhet
  • Separation mellan klient och server.
  • Flexibilitet.

Definiera RESTful Root Resource Classes.

Rotresursklasser är ”vanliga gamla Java-objekt” (POJOs) som antingen har en @Path-anteckning eller en metod som är kommenterad med @Path eller en HTTP-metod som @GET, @POST, @PUT eller @DELETE. Det markerar dem som resurser i REST-API:et.

Vad är URI?

En URI, eller Uniform Resource Identifier, är en unik sekvens av tecken som används för att identifiera eller lokalisera en resurs inom ett API eller en tjänst. Den specificerar platsen eller namnet på resursen oberoende av vilken teknik som används för att komma åt den.

Vad är tillståndslöshet i REST?

Tillståndslöshet är en begränsning i REST där varje förfrågan behandlas separat. Ingen information om tidigare interaktioner sparas mellan förfrågningarna. När en förfrågan har genomförts, avslutas den.

Vad är JAX-RS?

JAX-RS är ett Java API som används för att bygga applikationer som använder REST-arkitekturen. Det förenklar utvecklingen av REST-applikationer i Java.

Vilka är nyckelanteckningarna i JAX-RS API?

JAX-RS-anteckningar används för att annotera Java-klasser och metoder för att definiera resurser och de åtgärder som kan utföras på dessa. Några viktiga anteckningar inkluderar:

  • @GET: För att hantera GET-förfrågningar.
  • @POST: För att hantera POST-förfrågningar.
  • @Path: Anger den relativa sökvägen för en Java-klass.
  • @QueryParam: Används för att extrahera frågeparametrar från en URI.

Vilka är några nyckelfunktioner i JAX-RS API?

JAX-RS har flera funktioner som:

  • Cachning på klientsidan.
  • Cachning på serversidan.
  • Anpassning av frågesträngar.
  • Körtidsanteckningar.

Hur kan JAX-RS-applikationerna konfigureras?

En JAX-RS-applikation består av minst en resursklass som packas i en WAR-fil. Den grundläggande URI:n för resurserna kan konfigureras på två sätt:

  • Genom att använda @ApplicationPath-anteckningen i en underklass av javax.ws.rs.core.Application som finns i WAR-filen.
  • Genom att använda servlet-mapping-taggen i WAR-filens web.xml-fil.

Vad är JAX-WS och JAX-RS?

JAX-WS, eller Jakarta XML Web Services API, används för att utveckla API:er som använder Simple Object Access Protocol (SOAP). SOAP är ett XML-baserat protokoll för meddelanden. JAX-RS å andra sidan används för att skapa webbtjänster med REST-arkitektur.

Vad är HTTP-statuskoder?

HTTP-statuskoder är koder som skickas från servern till klienten för att meddela statusen för svaret. De ingår i svarsrubriken och låter klienten veta om förfrågan lyckades, misslyckades, eller om det finns något annat problem med svaret. Exempel på HTTP-statuskoder är:

  • 200 – ”OK”. Indikerar att förfrågan lyckades.
  • 404 – ”Not Found”. Resursen hittades inte på servern.
  • 500 – ”Internal Server Error”. Ett internt fel på servern.
  • 503 – ”Service Unavailable”. Servern är tillfälligt inte tillgänglig.

Vad är HTTP-metoder?

HTTP-metoder används för att utföra specifika operationer på resurser inom ett API. Till exempel, om du vill hämta en lista med filmer, kan du använda GET-metoden. Om du vill uppdatera data, kan POST-metoden användas. Här är några vanliga metoder:

  • GET: Används för att hämta data.
  • POST: Används för att skicka data till servern, ofta för att skapa eller uppdatera.
  • DELETE: Används för att ta bort en specifik resurs.
  • PATCH: Används för att delvis uppdatera en resurs.

Hur fungerar grundläggande HTTP-autentisering?

Autentisering är en process för att bekräfta en klients identitet och skydda data. I HTTP skickas autentiseringsinformation via ett auktoriseringshuvud. Detta huvud innehåller användarnamnet och lösenordet som servern sedan kontrollerar. Det är viktigt att notera att kanalen för autentiseringsuppgifter bör krypteras, ofta via HTTPS, för att säkerställa säkerheten.

Vilka är kärnkomponenterna i HTTP-begäran?

En HTTP-begäran består av tre huvudkomponenter:

  • Begäransrad: Den första raden som innehåller HTTP-metoden, resursens sökväg (slutpunkten) och HTTP-versionen.
  • Rubriker: Används för att ge metadata om förfrågan.
  • Kropp (valfri): Innehåller det faktiska meddelandet, vilket kan behövas beroende på typen av förfrågan (t.ex. POST).

Vilka är kärnkomponenterna i HTTP-svar?

Ett HTTP-svar har följande komponenter:

  • Status: HTTP-statuskoden som indikerar resultatet av förfrågan.
  • Rubriker: Ger information om svaret.
  • Meddelande: Den faktiska datan som skickas tillbaka till klienten.

Vad är skillnaden mellan REST och AJAX?

AJAX är en klientteknik som möjliggör asynkrona förfrågningar, ofta med JavaScript, till RESTful API:er. REST är å andra sidan en arkitektonisk stil som används för att bygga API:er. I grund och botten är AJAX ett verktyg för att använda REST API:er, medan REST är designprinciperna för själva API:et.

Vad är skillnaden mellan SOAP och REST?

REST är en flexibel arkitektur med få begränsningar, medan SOAP är ett protokoll med strikta krav. REST är enklare att använda och mer flexibel, och stödjer flera dataformat som JSON och XML. SOAP använder XML-baserade meddelanden och har inbyggd säkerhet men är mer komplex och tungt att använda. REST är ofta snabbare och enklare jämfört med SOAP.

Vad är skillnaden mellan PUT och POST?

POST används för att skicka data till servern, och om samma POST-förfrågan skickas flera gånger kan det orsaka flera identiska poster. PUT används också för att skicka data till servern, men är idempotenta, vilket innebär att oavsett hur många gånger samma förfrågan skickas så kommer servern att hantera det som en enda uppdatering. Om resursen inte finns, kommer PUT att skapa den, och om resursen redan finns, kommer den att uppdateras.

Vad är en nyttolast?

En nyttolast är datakroppen som skickas från klienten till servern i en REST-förfrågan. Det är den faktiska informationen som du vill överföra till servern.

Vad är den maximala nyttolaststorleken som kan skickas i postmetoder?

Det finns ingen fast standardgräns i själva HTTP-protokollet. Begränsningen bestäms istället av klientens eller serverns inställningar, beroende på vilken som är lägst.

Vilka är de bästa metoderna som måste följas när du skapar URI?

När du designar URI:er, följ dessa riktlinjer:

  • Undvik att använda filändelser.
  • Var konsekvent i hela API:et.
  • Organisera URI:erna i domäner och underdomäner.
  • Använd bindestreck eller understreck för att separera ord.
  • Använd snedstreck för att visa hierarki.
  • Använd korrekt URI-kodning.
  • Gör URI:erna lättlästa för människor.

Vad är idempotenta metoder?

Idempotenta HTTP-metoder ger samma resultat oavsett hur många gånger de anropas. Flera anrop påverkar inte slutresultatet, som en enkel GET-förfrågan, eller en DELETE-förfrågan, som endast tar bort resurser en gång, även om den anropas flera gånger. Några idempotenta metoder inkluderar:

  • PUT
  • DELETE
  • GET
  • HEAD
  • OPTIONS

Vad är Postman?

Postman är ett verktyg för API-utveckling som underlättar utveckling, modifiering och testning av API:er. Det erbjuder många funktioner för att snabbt skapa och testa API:er utan att behöva konfigurera en klient.

Cache-Control-huvudet innehåller anvisningar för hur cachelagring ska hanteras i webbläsare och servrar. Det styr vad som ska cachas och hur länge det ska lagras. Vanliga direktiv inkluderar:

  • max-age
  • no-cache
  • private
  • public
  • no-store
  • immutable

Definiera meddelanden i RESTful Web Services.

Meddelanden i RESTful webbtjänster är den kommunikation som sker mellan klienten och servern. Det innebär att klienten skickar en HTTP-förfrågan, och servern svarar med ett HTTP-svar.

Vad är skillnaden mellan monolitisk, SOA- och mikroservicearkitektur?

I en monolitisk arkitektur hanteras allt på ett och samma ställe. Klient, server och databas är integrerade i ett enda system. SOA (Service-Oriented Architecture) bygger på flera oberoende tjänster som samverkar med varandra för att lösa en uppgift. Mikroservicearkitektur liknar SOA, men tjänsterna är mer autonoma och kommunicerar via API:er. Till skillnad från monolitisk arkitektur är allt här uppdelat och självständigt.

Hur fungerar Microservice Architecture?

I en mikroservicearkitektur är applikationerna uppdelade i mindre, oberoende enheter som var och en hanterar en specifik funktion och kommunicerar med varandra via API:er. Detta ger en ökad flexibilitet, skalbarhet och möjligheten att använda olika tekniker för varje enhet.

Vad är CRUD?

CRUD är en förkortning för Create (skapa), Read (läsa), Update (uppdatera) och Delete (ta bort). Dessa är de grundläggande operationerna som kan utföras på en resurs. Ett CRUD-API stöder alla dessa operationer på en given resurs.

Vad är cachning?

Cachning är en metod för att temporärt lagra data, som svar eller förfrågningar, antingen på klienten eller servern. Genom att spara data lokalt kan man undvika att göra samma begäran igen, vilket minskar belastningen på servern och nätverket.

Vad är användningen av @RequestMapping?

@RequestMapping är en anteckning i Spring-ramverket som används för att koppla webbförfrågningar till specifika hanterarklasser och/eller metoder.

Vad gör @PathVariable?

@PathVariable är en Spring-anteckning som används för att hämta mallvariabler i en sökväg och koppla dem till metodargument.

Definiera HttpMessageConverter.

HttpMessageConverter används i Spring för att omvandla HTTP-förfrågningar och svar. Konverteraren används när data i en begäran behöver konverteras till ett format som kan användas i en hanterarmetod, eller när en metod returnerar data som behöver konverteras till ett format som kan inkluderas i ett HTTP-svar.

Några verktyg för API-testning är:

  • Postman
  • SoapUI
  • REST Sharp
  • Katalon
  • ReadyAPI
  • Apigee

Slutord

API:er är extremt viktiga i dagens digitala landskap, och REST API:er är populära för deras enkelhet och användarvänlighet. Genom att förstå grunderna och de vanligaste intervjufrågorna kring REST API:er kan du öka dina chanser att lyckas i en teknisk roll.

För att fördjupa dig ytterligare kan du utforska hur man använder Web Scraping API via adminvista.com.