Representational State Transfer
Den här artikeln behöver källhänvisningar för att kunna verifieras. (2020-11) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. |
Representational State Transfer (REST) eller RESTful webbtjänst är ett IT-arkitekturbegrepp som beskriver hur tjänster för maskin-till-maskin-kommunikation kan tillhandahållas via webbteknologi. Begreppet härrör från en avhandling av Roy Fielding – en av författarna till HTTP-specifikationen – och har fått en snabb spridning inom systemutvecklingsområdet genom sin enkelhet.
Tillämpningsexempel kan vara att en mobilapplikation, en bot eller en webbserver som fungerar som agent kan komma åt innehållet i en databas via en webbplats som är designad för maskiner snarare än för människor. Webbplatsen tillhandahåller ett objektorienterat databasgränssnitt enligt en domain object model (DOM). Vanligen överförs data på JSON-format mellan maskinerna.
REST för tillbaka begreppet SOA till den ursprungliga idén om att system inte behöver vara integrerade med starka beroenden. SOA har på senare tid allt mer kommit att definiera webbtjänster via SOAP vilket i många fall kan vara ett onödigt komplicerat sätt att knyta samman system och ofta skapa starka beroenden till produkter.
Jämfört med webbtjänster baserade på SOAP är REST-gränssnitt enklare att implementera, förstå och felsöka, och underlättar utvecklande av mobila applikationer med databasaccess. Tack vare enkelheten föreligger sällan behov av specifika produkter för kommunikationen. Detta medför att organisationer snabbare kan ta fram systemgränssnitt för andra att använda.
Grundprinciper
[redigera | redigera wikitext]Förespråkare av REST förklarar den snabbt ökande populariteten för REST-gränssnitt med de designprinciper som använts:
- Varje resurs är unikt adresserbar enligt en gemensam standard (URI).
- Alla resurser har ett gemensamt gränssnitt för att överföra kommandon mellan klient och server. Detta består av:
- Grundläggande kommandon för att interagera med resurser baserade på de verb som är angivna i HTTP-standarden: POST, GET, PUT och DELETE.
- En uppsättning innehållstyper baserade på MIME-typer. Varje resurs kan erhållas i ett av flera representationsformat.
- Till skillnad från tjänster implementerade på WS-stacken exponeras data istället för metoder.
Exempel
[redigera | redigera wikitext]T.ex. kan ett produktregister exponeras via REST services:
URI |
Verb |
Action |
---|---|---|
/products | GET | Hämtar en lista med alla produkter |
/products | POST | Skapar en ny produkt |
/products/{ProductID} | GET | Returnerar en produkt |
/products/{ProductID} | PUT | Ersätter en produkt |
/products/{ProductID} | DELETE | Tar bort en produkt |
/product_groups/{ProductGroupID} | GET | Returnerar en produktgrupp |
/products/{ProductID} | PATCH | Uppdaterar en produkt |
Se även
[redigera | redigera wikitext]Externa länkar
[redigera | redigera wikitext]- Architectural Styles and the Design of Network-based Software Architectures, kapitel 5 (avhandlingen där REST först beskrevs).
- RESTwiki: a short summary of REST
- Representational State Transfer Tutorial (Kräver inloggning)