Representational State Transfer

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

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

T.ex. kan ett produktregister exponeras via REST services:

URI

Verb

Action

/productsGETHämtar en lista med alla produkter
/productsPOSTSkapar en ny produkt
/products/{ProductID}GETReturnerar en produkt
/products/{ProductID}PUTErsätter en produkt
/products/{ProductID}DELETE Tar bort en produkt
/product_groups/{ProductGroupID} GETReturnerar en produktgrupp
/products/{ProductID}PATCHUppdaterar en produkt

Se även

Externa länkar

Media som används på denna webbplats

Question book-4.svg
Författare/Upphovsman: Tkgd2007, Licens: CC BY-SA 3.0
A new incarnation of Image:Question_book-3.svg, which was uploaded by user AzaToth. This file is available on the English version of Wikipedia under the filename en:Image:Question book-new.svg