WORDS
Webb-api:er: HTTP utan Rest
Jag har skrivit om Rest och HTTP, och hur dom utvecklades ihop och hur HTTP är en grundläggande förutsättning för Rest. Men det går förstås att använda HTTP utan Rest, vilket vi fick exempel på när vi tittade på Soap.
Om det blir svårt att passa in din applikation till Rest, så kan du göra avsteg från några Rest-principer, medan du absolut måste följa andra.
Viktiga principer
Dessa Rest-principer bör du inte avvika från, i synnerhet inte den första.
Med GET ska inget ändras. Vem som helst ska kunna göra vilken GET som helst utan negativa konsekvenser. Exempelvis sökmotorer kan göra en mängd oväntade GET-anrop mot din webbserver.
Använd inte POST för att hämta information. Med POST förväntar man sig att något händer, inte bara att man hämtar information.
Fria händer
Här är några exempel på vad du kan göra om du vill använda HTTP utan att vara bunden vid Rest.
- Hitta på en URL-struktur som passar din applikation bättre.
- Använd query-parametrar för dom syften som passar din applikation (dvs. det som står efter frågetecknet i
/api/?resource=x&filter=abc&page=2
).- Notoriskt exempel: Wikipedias api
- Hitta på ett eget protokoll ovanpå HTTP, efter andra principer.
- Använd Rest, men gå ifrån det när det känns svårt att designa.
Med allt detta sagt, så är det ofta en bra idé att utgå från Rest, och bara gå ifrån det om du har en konkret anledning.