Chci vyzkoušet rozdíl mezi ServiceStack Web a vestavěným webapi od Microsoftu a zjistit, jaké jsou jeho výhody, takže se snažím dnes vytvořit aplikaci ServiceStack Web Service
1: Vytvořte nový web prázdný projekt .NET 4.5 a poté použijte příkaz nuget k instalaci ServiceStacku:
Verze .NET musí být větší nebo rovna verzi 4.5, projekt 4.0 nebude úspěšně nainstalován! Jak je znázorněno na obrázku níže.
2: Vytvořit nový model a složku služeb
Vytvořte entitu požadavek a odpověď s následujícím kódem:
3: Vytvořit rozhraní služby ve složce služby
4: Vytvořte novou globální aplikační třídu s názvem Global.asax pro tento projekt a kód je následující:
5: Upravte konfiguraci web.config, přidejte nový uzel system.webServer a kompletní konfigurace je následující:
Zatím byla naše služba dokončena, při spuštění programu lze zobrazit rozhraní následovně,GetAllUserInfoRequest a GetByAgeUserInfoRequest lze chápat jako skutečné metody voláníParametry definované v něm lze interpretovat jako parametry požadavku metody, jak je znázorněno na obrázku níže:
Metody služeb v ServiceStacku se jmenují Any, Get a Post, což jsou také podporované typy požadavků v ServiceStacku.Jakýkoli způsob, jak službu volat jak v HTTP Get, tak v HTTP Post。 To posiluje a zjednodušuje implementaci webslužeb ve stylu RESTFull. Stačí přidat lásku [Route(...)] na tyto metody Atributy. V ServiceStacku,Rozdíl mezi metodami a metodami se rozlišuje podle parametrů služby a objektu požadavku Request DTO, místo rozlišování podle názvu metody jako ve WCF. To znamenáObjekt DTO požadavek nelze v ServiceStacku znovu použít napříč více službami。
Přidání parametru formátu za parametrem get request může vrátit typ odpovědi, například: format=json, format=xml atd., a zdá se, že je také podporován formát jsonp.
Například: http://localhost:52079//json/reply/GetAllUserInfoRequest?format=xml
Shrnuto, ve srovnání s webovým API Microsoftu se zdá, že ServiceStack nemá pojem o metodě na webu, je to jiná entita požadavku – metoda, dokáže automaticky generovat dokumenty rozhraní a formát odpovědi lze vrátit ve formátu (i když je možný i Microsoftův, ale působí jednodušší než Microsoft)
Reference: https://www.cnblogs.com/woxpp/p/5012947.html
https://msdn.microsoft.com/zh-cn/magazine/dn342871.aspx
https://github.com/ServiceStack/ServiceStack/wiki
Nakonec přiložte zdrojový kód projektu!
Turisté, pokud chcete vidět skrytý obsah tohoto příspěvku, prosím Odpověď
|