REST's principper (constraints)
REST er en arkitektonisk stil. En arkitektonisk stil defineres som:
Et samlet sæt arkitektoniske principper der regulerer anvendelsen af
arkitektoniske elementer og deres relation.
REST's arkitektoniske stil baserer sig i praksis på følgende principper:
1.
Giv alle ting (ressourcer) en URL
Navngiv alt hvad du er interesseret i.
Eksempler:
Københavns kommune: http://oiorest.dk/danmark/kommuner/101
Sorgenfri slot: http://oiorest.dk/danmark/kommuner/173/lokaliteter/Sorgenfri Slot
Dronningens adresse: http://oiorest.dk/danmark/adresser/Amalienborg Slotsplads,2,1257
Region Hovedstaden: http://oiorest.dk/danmark/regioner/1085
2. Link tingene (ressourcerne) til hinanden
Hypermedia Driving Application State
Eksempel:
<?xml version="1.0" encoding="utf-8" ?>
<kommune ref=http://oiorest.dk/danmark/kommuner/101
xmlns="http://itst.dk/schemas/danmarkservice">
<nr>101</nr>
<navn>København</navn>
<veje ref="http://oiorest.dk/danmark/kommuner/101/veje" />
<adresser ref="http://oiorest.dk/danmark/kommuner/101/adresser" />
</kommune>
3. Alle ressourcer tilgås via samme interface
|
Metode |
Beskrivelse |
Egenskaber |
|
GET |
Modtag information (muligvis cached) |
safe, idempotent, cacheable |
|
PUT |
Opdater eller opret med kendt id. |
idempotent |
|
DELETE |
Slet |
idempotent |
|
POST |
Opret |
|
4. Tillad forskellige repræsentationer af samme resource
Self-Describing Messages
Eksempler:
XML:
http://oiorest.dk/danmark/kommuner/173/lokaliteter/Sorgenfri Slot/adresser.xml
JSON:
http://oiorest.dk/danmark/kommuner/173/lokaliteter/Sorgenfri Slot/adresser.json
Google Earth format:
http://oiorest.dk/danmark/kommuner/173/lokaliteter/Sorgenfri Slot/adresser.kml
5. Kommuniker tilstandsløs
Hvert request er står alene. Den REST baserede web service husker ikke foregående kald fra samme klientapplikation.
Første request kan håndteres af en server; andet request fra samme klient kan
håndteres af en anden server. Tilstandsløsheden gør det bl.a. lettere at skalere
sin løsning samt at debugge den.