Hlavní navigace

RESTFul Web Services a .NET

RESTFul Web Services získávají stále větší oblibu díky velmi jednoduchému principu a maximálnímu využití již existujících technologií a tím pádem i nezávislosti na platformě. V článku se nebudeme zabývat teorií REST, ale podíváme na konkrétní implementaci, která se jmenuje ADO.NET Data Services.

Jedna z nejzajímavějších novinek v .NET Framework 3.5 SP1 je podpora RESTFul Web Services v návaznosti na LINQ. Vytvoření služby pak spočívá ve vytvoření objektového modelu databáze buď pomocí designéru, který je součástí Visual Studia 2008, nebo utilitou z příkazové řádky. Takto vytvořený model se pak „podstrčí“ do ADO.NET Data Service a tím je služba naimplementovaná.

Jak tedy vytvořit na platformě nezávislého klienta?

Jako ukázku pro vytvoření klienta si zvolíme asi to nejuniverzálnější – webový prohlížeč. Naším úkolem bude vytvořit jednoduché hledání produktů v databázi pouze s využitím Javascriptu. Jedna z vlastností ADO.NET Data Services je možnost serializace výstupu do formátu JSON místo XML, konkrétně formát ATOM. To, jak se bude výstup serializovat, je dáno nastavením hlavičky Accept protokolu HTTP. ADO.NET Data Services jsou v podstatě rozhraní k databázi, a proto obsahují i dotazovací jazyk, který má možnosti podobné SQL.

Ukázka dotazu:

var request = new XMLHttpRequest(); request.onrea­dystatechange = …; request.open(„GET“, „http://…/Nor­thwind.svc/Pro­ducts?$filter=star­tswith(Produc­tName,%20'…')“, true); request.setRe­questHeader(„Ac­cept“, „application/json“); request.send();

Zpracování odpovědi můžeme provést funkcí eval nebo některou knihovnou pro práci s formátem JSON, která je například v Internet Explorer 8, součásti Javascript engine

Zpracování odpovědi:

var response = JSON.parse(re­quest.response­Text)[“d”]

Pokud si chcete sami vyzkoušet vytvoření RESTFul Web Service pomocí ADO.NET Data Services, stačí si stáhnout Visual Web Developer Express 2008, který je zdarma a lze ho využít ke komerčním účelům, nebo si počkejte na DreamSpark.

Štěpán Bechynský, specialista pro vývojové nástroje ve společnosti Microsoft v České republice

<![CDATA[ _gde_phdfbunlqd = new Image(1,1); _gde_phdfbunlqd­.src=‚http:gdec­z.hit.gemius.pl/_‘+(new Date()).getTi­me()+‚/redot.gif?id=nG3r­q4vpiCEJs5nzZ8Z­.k5ZznO3pO..K2RzPQ5fL96­3.Q7/stparam=phdfbun­lqd‘; //]]>