Hoppa till innehållet

Representational State Transfer

Från Wikipedia

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.

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

Externa länkar

[redigera | redigera wikitext]