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

Ett API står för Application Programming Interface. Den fungerar som en gateway för applikationer för att komma åt vissa resurser från andra applikationer.

Fördelen med att använda ett API är att ge åtkomst till tredjepartsapplikationer så att de inte kan komma åt hela din applikations data. De kan bara komma åt data som du exponerar via ditt API.

Applikationen eller en användare som vill komma åt data är känd som en klient, och applikationen som betjänar data är känd som en server.

API:er används i stor utsträckning idag i alla programvaruarkitekturer. Om du ansöker om en front-end-, back-end-, full-stack- eller nätverksteknikerroll kommer du att få många frågor om API:er.

Med det sagt, låt oss utforska några av de vanligaste intervjufrågorna om REST API:er.

Vad är REST?

Svar: REST är en arkitektonisk design som definierar vissa begränsningar för hur API:er fungerar. API:erna som följer principerna för REST är kända som RESTful API:er. REST står för Representational State Transfer.

Det är inte ett protokoll eller en standard; istället är det en arkitektur som kan användas för att implementera API:er på olika sätt.

Det ger hög flexibilitet och frihet för utvecklare, och det är därför det används i stor utsträckning för att utveckla API:er. Här är några av principerna för en REST-arkitektur:

  • Separation av klient och server: I ett RESTful API ska klienten inte påverka servern på något annat sätt än att begära data via en URI (Uniform Resource Identifier). På samma sätt bör servern inte modifiera innehållet i klienten på något sätt.
  • Statslöshet: När två separata förfrågningar görs vet de inte om varandra. Med andra ord, förfrågningarna är statslösa och upprätthåller inte en stat. Om en begäran uppfylls avslutas den helt enkelt. Varje begäran är isolerad från andra förfrågningar.
  • Layered Architecture: Klienten eller servern vet inte om begäran görs direkt till ursprunget eller en mellanliggande applikation. De bryr sig bara om svaret på förfrågan.
  • Cachning: Data eller svar kan cachelagras på klient- och serversidan för att förbättra prestanda och skalbarhet. Om det finns frekventa förfrågningar för en viss resurs, kan svaret på den förfrågan cachelagras och användas vid behov.

Vilka är några nyckelegenskaper hos REST?

Svar: Nyckelegenskaper eller egenskaper hos REST är:

  • Flexibilitet: Du kan flytta från en server till en annan, och det kommer inte att ändra någonting eftersom API:et skickar samma svar för en viss begäran. Du kan också lägga till så många slutpunkter som du vill för olika typer av data.
  • Skalbarhet: Caching förbättrar skalbarheten på grund av att svaren sparas för senare användning. Det minskar belastningen på servern och minskar även latensen.
  • Auktorisering: Med hjälp av auktoriseringshuvudet kan du ange de referenser som servern kan använda för att auktorisera begäran.
  • Statslöshet: Detta är den viktigaste egenskapen hos REST eftersom det förhindrar förfrågningar från att veta vad som händer med andra förfrågningar. Förfrågningar isoleras och avslutas så snart de är uppfyllda.

Vad är resurser i en REST-arkitektur?

Svar: Resurser är enheter på vilka olika operationer utförs, som att hämta, uppdatera eller ta bort. De är de grundläggande byggstenarna i REST-arkitekturen.

Om du till exempel funderar på en e-handelsbutik online, anses produkterna, användarna såväl som metadata som resurser eftersom de kan opereras. Resurser kan överföras till en annan applikation via API.

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

Svar: Fördelarna med REST API: er är följande:

  • Det är enkelt att implementera.
  • Resurser kan enkelt hanteras.
  • Det är skalbart på grund av klient-server-arkitekturen.
  • Stöder flera typer av dataöverföringsmedia som XML och JSON.

Dess nackdelar är:

  • Du kan inte upprätthålla ett tillstånd mellan förfrågningar.
  • Den verkliga ursprungskällan för resursen kan inte vara känd på grund av skiktad arkitektur.
  • Inte bra för komplexa frågor eller förfrågningar.

Definiera REST-mall.

Svar: En REST-mall är ett verktyg eller en klient genom vilken du kan komma åt REST-API:er i Spring-ramverket. Det döljer i princip koden du kan behöva skriva för att begära en resurs från ett REST API.

Vad är RESTful?

Svar: RESTful API:er eller tjänster är gränssnitt som implementerar REST (Representational State Transfer) arkitekturstil och fungerar med protokoll som HTTP.

Vad är RESTful Web Services?

Svar: RESTful webbtjänster är byggda för att fungera bäst på webben. Representational State Transfer (REST) ​​är en arkitektonisk stil som specificerar begränsningar, såsom det enhetliga gränssnittet, skiktad arkitektur och tillståndslöshet, om de tillämpas på en webbtjänst, inducerar önskvärda egenskaper, såsom prestanda och skalbarhet, som gör att tjänsterna fungerar bäst på webben.

Hur kan du testa RESTful webbtjänster?

Svar: För att testa en RESTful webbtjänst kan du använda en REST-klient som Postman eller Thunder Client och fråga den webbtjänst du vill testa. Sedan, när du får ett svar, förstå svaret; det är nyckeldelen.

Om du vill testa ett komplext API med många slutpunkter kan du behöva bryta ner testning och utföra enhetstestning, integrationstestning, prestandatestning och end-to-end-testning.

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

Svar: Några av nyckelfunktionerna i RESTful webbtjänster är:

  • Stöd för flera mediatyper som JSON och XML.
  • Skalbarhet
  • Isolering av klient och server
  • Flexibilitet

Definiera RESTful Root Resource Classes.

Svar: Rotresursklasser är ”vanliga gamla Java-objekt” (POJOs) som antingen är kommenterade med @Path eller har minst en metod kommenterad med @Path eller en begäranmetoddesignator, som @GET, @POST, @PUT eller @RADERA.

Vad är URI?

Svar: URI står för Uniform Resource Identifier. Det är en sekvens av tecken som används för att lokalisera eller identifiera resurser för ett API eller en tjänst. Den använder namnet eller platsen för resursen för att identifiera den, men den förlitar sig inte på en viss metod eller teknik.

Vad är statslöshet i REST?

Svar: Statslöshet hänvisar till en begränsning som tillämpas på ett API där två förfrågningar inte kan veta vad som händer med varandra. Med andra ord, tillståndet för förfrågningarna bibehålls inte. Om begäran uppfylls, avslutas den helt enkelt efter att ha fått ett svar.

Vad är JAX-RS?

Svar: JAX-RS är ett Java API som gör att du kan utveckla applikationer i Java som använder REST-arkitekturen. Detta API gör det enkelt att utveckla REST-applikationer i Java.

Vilka är nyckelanteckningarna i JAX-RS API?

Svar: Anteckningar i JAX-RS används av utvecklare för att dekorera Java-klasser för att definiera resurser och metoder som kan utföras på dessa resurser. Några nyckelkommentarer för JAX-RS API är:

  • @GET: Den används för att göra GET-förfrågningar i HTTP.
  • @POST: Den används för att göra POST-förfrågningar i HTTP.
  • @Path: Det hänvisar till den relativa sökvägen för en Java-klass.
  • @QueryParam: Det hänvisar till frågeparametrarna för URI:n eller URL:en.

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

Svar: Funktioner hos JAX-RS är:

  • Cachning på klientsidan
  • Cachning på serversidan
  • Anpassning av frågesträng
  • Körtidskommentarer

Hur kan JAX-RS-applikationerna konfigureras?

Svar: En JAX-RS-applikation består av minst en resursklass paketerad i en WAR-fil. Bas-URI från vilken ett programs resurser svarar på förfrågningar kan ställas in på ett av två sätt:

  • Använda @ApplicationPath-kommentaren i en underklass av javax.ws.rs.core.Application paketerad inom WAR
  • Använda servlet-mapping-taggen i WAR:s web.xml-distributionsdeskriptor

Vad är JAX-WS och JAX-RS?

Svar: JAX-WS är ett Jakarta XML Web Services API som används för att utveckla API:er med Simple Object Access Protocol (SOAP) – ett XML-baserat meddelandeprotokoll.

Å andra sidan är JAX-RS ett Java API som används för att skapa webbtjänster med REST-arkitekturen.

Vad är HTTP-statuskoder?

Svar: Statuskoder är inget annat än ett sätt att kommunicera status för svaret som servern skickar till klienten. De finns i svarsrubriken som skickas av servern.

Klienten kan ta reda på om begäran har misslyckats eller uppfyllts eller om det är något fel med svaret genom att använda statuskoderna.

Här är några vanliga statuskoder för HTTP:-

  • 200 – Det står för nyckelordet ”OK”. Det betyder att begäran har uppfyllts och att svaret är okej.
  • 404 – Det står för ”Not Found”. Det betyder att en resurs inte finns på servern eller att det inte finns någon slutpunkt.
  • 500 – Det står för ”Internt serverfel”. Detta händer vanligtvis när servern inte kan generera det korrekta svaret, eller det finns ett fel som inte uttryckligen skickas.
  • 503 – Det står för ”Service Unavailable”. Det betyder att servern för närvarande inte kan bearbeta några förfrågningar, förmodligen för att den är död eller inte fungerar på grund av överbelastning av begäran. Det kan också uppstå när servern ska underhållas.

Vad är HTTP-metoder?

Svar: HTTP-metoder används för att utföra en viss typ av åtgärd på en viss resurs i ett API. Om du till exempel vill hämta en lista över filmer från ett filmsamlings-API, kan du använda metoden GET som tillhandahålls av HTTP. Om du vill uppdatera data kan du använda POST-metoden som tillhandahålls av HTTP.

Ofta använda HTTP-metoder är följande:

  • GET: Förfrågningar som använder GET bör endast hämta data.
  • POST: Den uppdaterar resursen genom att skicka en nyligen uppdaterad resurs till servern.
  • DELETE: Den tar bort den angivna resursen.
  • PATCH: Den modifierar delvis resursen.

Hur fungerar grundläggande HTTP-autentisering?

Svar: Autentisering är en process för att verifiera en klients äkthet för att upprätthålla datasäkerheten. I HTTP fungerar autentisering via en auktoriseringshuvud, som skickas av klienten.

Authorization Header består av användarnamn/id och lösenord för klienten, som sedan verifieras av servern och åtkomst beviljas.

En viktig sak att notera här är att när du använder HTTP-autentisering bör kanalen genom vilken autentiseringsuppgifterna passerar vara krypterad och säker.

Du kan säkra kanalen med SSL-lagret, som är integrerat i HTTPS. Så det rekommenderas att använda HTTPS istället för enkel HTTP när du hanterar autentiseringsuppgifter.

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

Svar: En HTTP-begäran består av följande komponenter:

  • Begäransrad: Det är den första raden i varje begäran och består av HTTP-metoden, sökvägen eller slutpunkten och HTTP-versionsnumret.
  • Rubriker: HTTP-rubriker används för att tillhandahålla metadata för begäran.
  • Kropp (valfritt): Den här komponenten finns endast för vissa av förfrågningsmetoderna. Det krävs inte för GET-förfrågningar, men det krävs för POST-förfrågningar. Det är själva budskapet i begäran.

Vilka är kärnkomponenterna i HTTP-svar?

Svar: Ett HTTP-svar består av följande komponenter:

  • Status: Det hänvisar till HTTP-statuskoden som skickas av servern.
  • Rubriker: Precis som förfrågningar har svar också sina respektive rubriker, som ger användbar information om svaret.
  • Meddelande: Detta är den faktiska data som skickas av servern till klienten för att begära en viss resurs.

Vad är skillnaden mellan REST och AJAX?

Svar: AJAX är en klient genom vilken du kan komma åt RESTful API:er. Den används för att skicka asynkrona förfrågningar med JavaScript.

REST, eller Representational State Transfer, är en arkitektur som kan implementeras för att skapa RESTful API:er. Kort sagt, för att skicka HTTP-förfrågningar kan du använda AJAX som fungerar som en klient, men om du vill implementera RESTful API:er måste du använda REST-arkitektur.

Vad är skillnaden mellan SOAP och REST?

Svar: Representational State Transfer, eller REST, är en arkitektur med minimala begränsningar för att skapa API:er. SOAP, eller Simple Object Access Protocol, är ett protokoll med strikta krav för att implementera ett API.

REST är mer flexibelt och lätt att använda än SOAP. XML-baserade meddelanden används i SOAP, medan i REST kan du använda många dataöverföringstyper som JSON, XML, etc. Jämfört med SOAP är REST lättare och snabbare.

SOAP-webbtjänster har inbyggd säkerhet, vilket är en fördel med att använda SOAP framför REST, men de extra funktionerna gör den också komplex och tung att använda.

Vad är skillnaden mellan PUT och POST?

Svar: POST är en HTTP-förfrågningsmetod som skickar vissa data till servern. Om du gör flera POST-förfrågningar för en viss resurs kan det finnas biverkningar på din data. Om du till exempel vill lägga till en artikel i en samling, om du gör flera POST-förfrågningar, kommer flera artiklar att läggas till i samlingen vilket leder till överflödiga artiklar.

PUT är en HTTP-förfrågningsmetod som skickar data till servern för en viss resurs men bara uppdaterar data en gång. Om du skickar flera PUT-förfrågningar för en viss resurs kommer inga biverkningar att uppstå, och data kommer endast att läggas till en gång. I PUT, om resursen inte finns, kommer den att skapa en ny, och om den finns kommer den att uppdatera den befintliga.

PUT är idempotent, medan POST inte är det.

Vad är en nyttolast?

Svar: En nyttolast i ett REST-API är helt enkelt kroppen av begäran som skickas från klienten till servern. Det är data du vill skicka till servern och få ett svar.

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

Svar: Det finns ingen standardgräns satt av själva HTTP-protokollet. Gränsen kan bero på maxgränsen för klienten eller servern, beroende på vilket minimum som är.

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

Svar: Några av de viktigaste punkterna du måste tänka på när du utformar URI:er är:

  • Undvik att använda filtillägg
  • Var konsekvent med alla URI:er
  • Dela in URI:erna i domäner och underdomäner för olika uppsättningar av resurser
  • Du bör använda bindestreck eller understreck för att separera ord i meningar inbäddade i URI:er
  • Du bör använda snedstrecket för att indikera en hierarki av resurser
  • Koda en URI med korrekt kodning
  • Försök att göra URI:n läsbar för människor

Vad är idempotenta metoder?

Svar: Idempotenta HTTP-metoder har samma effekt på servern trots att de skickar flera identiska förfrågningar. Till exempel, om du skickar flera identiska DELETE-förfrågningar för en viss resurs, kommer resursen inte att ändras vid varje begäran; det kommer att uppdateras som om bara en begäran har skickats.

Några av de idempotenta metoderna inkluderar:

  • SÄTTA
  • RADERA
  • SKAFFA SIG
  • HUVUD
  • ALTERNATIV

Vad är Postman?

Svar: Postman är ett API-utvecklingsverktyg för att utveckla, modifiera och testa API:er. Det ger många funktioner för att snabbt bygga och testa API:er utan att behöva konfigurera en klient.

Svar: Cache-Control-huvudet består av instruktioner eller direktiv för att konfigurera cachelagring i webbläsare och servrar. Den talar om för webbläsaren eller servern vad som ska cachelagras och hur länge det ska cachelagras innan det begärs via nätverksbegäran.

Cache-Control-huvudet innehåller följande direktiv:-

  • max-ålder
  • ingen cache
  • privat
  • offentlig
  • ingen butik
  • oföränderlig

Definiera meddelanden i RESTful Web Services.

Svar: Meddelanden i RESTful webbtjänster avser att klienten skickar en HTTP-förfrågan till servern, som servern svarar på med ett HTTP-svar. Denna kommunikation mellan klienten och servern kallas meddelanden.

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

Svar: I en monolitisk arkitektur hanteras allt på ett ställe. Klientsidan, servern och databasen hanteras alla från en enda plats. Det är därför det är känt som monolitiskt eftersom ordet ”monolit” syftar på ett enda block eller en sten.

SOA står för Service-Oriented Architecture. I denna arkitektur hanteras olika aspekter av applikationen av olika tjänster, som också är mjukvara. Så det är en kombination av flera tjänstemjukvarumoduler. Integration är nyckeln i denna arkitektur.

Mikrotjänsters arkitektur liknar SOA, men till skillnad från SOA har den flera autonoma program som pratar med varandra med hjälp av API:er. Till skillnad från monolitisk arkitektur är allt här autonomt och till viss del oberoende.

Hur fungerar Microservice Architecture?

Svar: I en mikrotjänstarkitektur är applikationerna uppdelade i mindre underenheter som är oberoende av varandra och fungerar på egen hand, men de kommunicerar med varandra via en väldefinierad uppsättning API:er.

Några fördelar med mikrotjänsters arkitektur inkluderar smidighet, flexibilitet, skalbarhet, oberoende teknologier, återanvändbara tjänster och enkel implementering.

Vad är CRUD?

Svar: CRUD står för Skapa, Läs, Uppdatera, Ta bort. Detta är de operationer som kan utföras på en viss resurs. API:et som stöder alla dessa operationer är känt som ett CRUD API. Dessa är de mest grundläggande operationerna som kan utföras av ett API på en resurs.

Vad är cachning?

Svar: Cachning är en teknik för att lagra ett svar eller en begäran på klienten eller servern för att den ska användas igen senare.

Svar cachelagras vanligtvis på klienten eftersom om klienten gör samma begäran flera gånger under ett kort tidsintervall, är det ingen mening att begära svaret igen över nätverket och slösa bort bandbredden.

Vad är användningen av @RequestMapping?

Svar: Det är en anteckning i springramverket som används för att mappa webbförfrågningar på specifika hanterarklasser och/eller hanterarmetoder.

Vad gör @PathVariable?

Svar: @PathVariable-anteckningen i fjäderramverket används för att extrahera värdet på mallvariablerna och tilldela deras värde till en metodvariabel.

Definiera HttpMessageConverter.

Svar: När en HTTP-begäran (eller delar av den) behöver konverteras till en typ som behövs som argument för en hanterarmetod eller när värdet som returneras av en hanterarmetod måste konverteras på något sätt för att skapa ett HTTP-svar, HTTP meddelandekonverterare används.

Svar: Några verktyg som kan hjälpa dig med API-testning är följande:

  • Brevbärare
  • Var så säker
  • Vila Sharp
  • Katalon
  • ReadyAPI
  • Apigee

Slutord

Nuförtiden har API:er blivit extremt populära på grund av internets tillkomst. En annan anledning till att REST API:er är populära är att de är lätta att utveckla och lätta att använda.

Om du förbereder dig för en intervju, överväg ovanstående frågor om REST API:er som kan ställas i din intervju.

Därefter kan du kontrollera hur man skrapar en webbplats med hjälp av adminvista.com Web Scraping API.