DEVASC: API på webben, del 1

Jag vill börja detta inlägg genom att förklara 2 centrala begrepp:

  • “Representational State Transfer” (REST): en arkitekturstil som sätter en standard för kommunikation mellan system på webben.
  • “Application Program Interface” (API): definierar ett sätt för att program, system och applikationer ska kunna prata med varandra. På en väldigt hög nivå kan vi se API som en tolk för att förflytta data från en plats till en annan.

Vad är ett REST API?

Ett REST API är byggt av fyra komponenter:

  • “Uniform Resource Identifier” (URI)
    • Identifierar en resurs och består av flera delar
    • Ett exempel: https://swapi.dev/api/people/1/
      • https: definierar schemat
        • vilket protokoll som används
      • //swapi.dev definierar en “authority” komponent
        • adress för destination, består oftast av värdadress och port
      • /api/people/1/ definierar sökvägen
        • står för platsen som resursen finns på, likt exemplet kan den bestå av flera segment
    • om du undrar vad skillnaderna mellan URI och URL är hade jag rekommenderat att läsa mer här: https://www.javatpoint.com/uri-vs-url
  • HTTP metod
    • REST APIer använder de vanliga HTTP metoderna. Vilka metoder som finns tillgängliga varierar mellan olika system. De vanligaste metoderna som används är:
      • POST – skapar en ny resurs
      • GET – hämtar en resurs
      • PUT – ersätt eller uppdatera en resurs
      • PATCH – uppdatera specifika uppgifter i en resurs
      • DELETE – radera en resurs
  • Header
    • En vanlig HTTP header används när vi jobbar med REST APIer. Den är valfri att använda och data formateras som nyckel-värde-par.
    • Det finns två typer av headers:
      • Request Header – innehåller extra information som inte har med innehållet att göra, så som exempelvis autentisering
      • Entity Header – innehåller information som beskriver innehållet, så som exempelvis “content-type
  • Body
    • Innehållet av en förfrågan
    • Denna kan vara valfri, beroende på vilken HTTP metod som används. Om vi lägger till innehåll behöver vi specificera mediatypen i en entity header (med content-type).

Alla REST APIer är inte identiska, läs alltid dokumentationen för att se hur du ska använda ett API.

I nästa del labbar vi lite för att se hur det funkar i praktiken.

Leave a Reply

Your email address will not be published. Required fields are marked *