bloghoved rene løhde

Web 2.0 og .Net 3.5 - Del 3:4

Tredie del af torsdagens techtalk var om REST understøttelse i Windows Communication Foundation.

Her kommer lige et kort recap på REST.

REST er en arkitektur, som bruger HTTP og denne protokols indbyggede VERBS for at arbejde mod ressourcer på nettet. REST og VERBS tillader et komplet CRUD pattern mod ressourcerne. Create kan være HTTP verbet PUT, Read kan være GET, Update kan være POST og Delete er ...well, DELETE verbet!

Ressourcerne kan være de statiske objekter som vi kender på nettet og dermed også de typer vi kender fra HTTP's "Content-Type" header: tekst, billeder etc.

De mest interessant MIME's af ressourcer i den programmerbare del af arkitekturen er "application/xml" og "application/json" .

De 3 gode egenskaber ved REST-arkitekturen er at ressourcer og dermed data kan ADRESSERES via URI, kald har ikke TILSTAND og arkitekturen tillader at ressourcer peger på andre ressourcer (SAMMENHÆNG?).

Demo: WCF og REST

For WCF's Rest implementering gælder det at det skal være muligt at bruge den samme programmeringsmodel - hvad enten det er REST, SOAP services eller en hvilken som helst anden distribueret applikationsmodel man udvikler.

F.eks vil et almindelig (System.ServiceModel) SOAP interface

[ServiceContract]
public interface IDanmarksTemperatur
{
[OperationContract]
Stream HentVejrKort(string kommune, string postDistrikt);
}

blive til en REST baseret interface ved hjælp af en "Web" attributering:

[ServiceContract]
public interface IDanmarksTemperatur
{
[OperationContract]
[WebGet(UriTemplate='/temperatur/{kommune}/{postDistrikt}')]
Stream HentVejrKort(string kommune, string postDistrikt);
}

Læg mærke til "URITemplate" - et skabelonsobjekt i WCF, som tillader "fri" adressering, den vigtige første egenskab i REST som omtalt ovenfor. F.eks

http://hent-vejret-her/temperatur/ikast-brande/7441 eller
http://hent-vejret-her/temperatur/756/7441

Et eksempel på andet end GET kunne være en oprettelse af data via PUT:

[OperationContract]
[WebInvoke(METHOD='PUT')]
Stream UploadVejrData(XDocument rapport);

Læg mærke "WebInvoke" som tager en parameter "METHOD".

Her ender 3. del af Techtalken - hvis man vil se mere kan man evt. se en webcast her. Vælg Visual Studio 2008 og browse efter WCF og REST.

Kommentarer (0)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Log ind eller Opret konto for at kommentere