HTTP and remote API:s Flashcards
Vad styr HTTP?
HTTP är det protokoll som styr hur data skickas mellan server och klient.
Vilka är de fyra vanliga http-metoderna?
GET, PUT, POST, DELETE
Vilka http-metoder finns utöver de fyra vanliga?
HEAD: hämtar bara huvudet av svaret.
OPTIONS: Ta reda på vilka verb som stöds av en sida eller resurs.
PATCH: Partiella uppdateringar av en resurs.
TRACE: Få tillbaka exakt begäran som skickats, för felsökning.
CONNECT: Upprätta tunnelanslutning via en proxy för att sedan övergå till SSL/TLS
Vad är det för skillnad på URL och URI?
URN är som ett personnummer – det identifierar vad eller vem resursen är, men inte var den finns.
URL är som en hemadress – det anger var resursen finns och hur man får tillgång till den.
URI täcker båda begreppen – både identifiering (URN) och lokalisering (URL).
Vad betyder statuskoden 200?
OK! Begäran lyckades.
Vilka andra vanliga statuskoder finns i spannet 5xx utöver 500 internal server error?
501 – Not Implemented: Metoden stöds inte av servern.
502 – Bad Gateway: Felaktigt svar från en uppströmsserver.
503 – Service Unavailable: Servern är överbelastad eller underhålls.
504 – Gateway Timeout: Timeout från uppströmsservern.
505 – HTTP Version Not Supported: Servern stödjer inte den använda HTTP-versionen.
507 – Insufficient Storage: Servern har inte tillräckligt med lagringsutrymme.
509 – Bandwidth Limit Exceeded
511 – Network Authentication Required: Kräver nätverksautentisering (t.ex. på offentliga Wi-Fi-nätverk).
Vad är HTTP-headers?
Viktiga metadata om begäran eller svar som skickas med begäran eller svar.
Varför används sessions och cookies?
För att HTTP är stateless. Varje begäran är en ny händelse och kommer inte ihåg tidigare kommunikation. Cookies sparas på klienten. sessions sparas på servern. De lagrar små bitar av information om din interaktion med en webbplats.
Vad är skillnaden mellan http och https?
De fungerar likadant men https krypterar all information som skickas.
Vad står SSL för?
Secure Sockets Layer
Vad står TLS för?
Transport Layer Security
Vilka är de vanligaste typerna av remote API?
REST, SOAP och GraphQL
Vad står SOAP för?
Simple Object Access Protocol
Vad är GraphQL?
Ett flexibelt API-format som gör det möjligt att ange exakt vilka fält och vilka data man vill ha i en begäran. Kan leda till färre och mindre dataöverföringar.
Hur gör man en vanlig GET-förfrågan med JS?
fetch('https://api.example.com/users') .then(response => response.json()) // Konverterar svar till JSON-format .then(data => { console.log(data); // Hantera och visa datan }) .catch(error => console.error('Error:', error)); // Fånga eventuella fel
Hur gör man en vanlig POST-förfrågan med JS?
fetch('https://api.example.com/users', { method: 'POST', // Använd POST-metoden headers: { 'Content-Type': 'application/json', // Talar om att vi skickar JSON-data }, body: JSON.stringify({ name: 'John Doe', email: 'john.doe@example.com' }) }) .then(response => response.json()) // Konvertera svar till JSON-format .then(data => { console.log('Success:', data); // Hantera svaret från servern }) .catch(error => console.error('Error:', error)); // Fånga eventuella fel
Två sätt att autentisera vid API-förfrågningar
- API-tokens
- OAuth
Fem steg för att göra API-förfrågan?
- Välj endpoint
- Välj HTTP-metod (GET, PUT, POST, DELETE)
- Skicka en begäran med nödvändiga headers och eventuell data (t.ex. i JSON-format).
- Hantera svaret från servern (t.ex. omvandla det till JSON och bearbeta det).
- Fånga och hantera error.
Varför används API-versionering?
För att stödja bakåtkompatibilitet och inte störa klienter som redan använder APIet, men kunna fortsätta utveckla det.
Tre sätt att implementera API-versionering?
URL baserad - versionsnummer läggs till i api-endpoint GET https://api.example.com/v1/users
Query-parameter - lägg till versionsnummer som en parameter i förfrågan GET https://api.example.com/users?version=1
Headers - Ange version i förfrågans headers:
fetch('https://api.example.com/users', { method: 'GET', headers: { 'API-Version': '1' } });
Tre metoder för API-autentisering?
API-keys
OAuth
JWT (JSON web tokens)
Hur fungerar API-keys?
- Generering: API-nyckeln genereras av API-leverantören och ges till utvecklaren eller applikationen som vill använda API:et.
- Inkludering i API-anrop: När en applikation gör en förfrågan inkluderas klient nyckeln i header body eller som en query parameter.
Vilka autentiseringsalternativ är bättre för stora applikationer/med högre säkerhetskrav?
OAuth, JWT
Vad är rate-limiting/API-throttling?
Att begränsa antalet/frekvensen av begäranden till API:et.
Vad är rate-limiting?
Att begränsa antalet förfrågningar som kan göras under en viss tidsperiod.
Vad är API-throttling?
Att sakta ner behandlingen av förfrågningar temporärt.
Vilka tre delar bör ett bra felmeddelande innehålla?
Själva felmeddelande: En klar beskrivning av vad som gick fel.
Felkod: En specifik kod som kan användas för att identifiera typen av fel.
Detaljer: Eventuell ytterligare information som kan hjälpa utvecklaren att felsöka (t.ex. ogiltiga fält eller saknade parametrar).
Problem:
Att göra API-förfrågningar för varje ny begäran kan bli resurskrävande, särskilt om data inte förändras så ofta.
Lösning: Caching
Caching innebär att lagra svar från tidigare API-förfrågningar så att samma data kan återanvändas utan att behöva göra en ny förfrågan till servern.