WCF („Windows Communication Foundation“) yra saugi, patikima ir keičiamo dydžio susirašinėjimo platforma, kurią galima naudoti kuriant žiniatinklio paslaugas .Net. Tai suteikia vieningą programavimo modelį, skirtą kurti į paslaugas orientuotas programas.
Norėdami sukurti „RESTful“ paslaugas .NET, galite naudoti WCF. REST („Reprezentacinis valstybės perkėlimas“) yra architektūros paradigma, atitinkanti REST architektūros principus. REST architektūra remiasi išteklių koncepcija: ji naudoja išteklius, kad atspindėtų programos būseną ir funkcionalumą. Šie ištekliai savo ruožtu identifikuojami naudojant URI per HTTP protokolą.
WCF paslaugos sukūrimas
Šiame skyriuje mes išnagrinėsime, kaip galime sukurti „RESTful“ paslaugą WCF. Pirmiausia sukurkime naują WCF paslaugą „Visual Studio“. Norėdami tai padaryti, atlikite toliau nurodytus veiksmus. Atkreipkite dėmesį, kad šiame straipsnyje iliustruotai programai kurti naudojau „Visual Studio 2015“, nors galite naudoti ir „Visual Studio 2012“ arba „2013“.
- Atidarykite „Visual Studio 2015“
- „Visual Studio IDE“ meniu Failas spustelėkite Pradėti -> Failas -> Naujas -> Projektas
- Tada iš rodomų projekto šablonų sąrašo pasirinkite WCF
- Dešinėje šoninėje srityje pasirinkite „WCF Service Application“
- Nurodykite savo WCF paslaugų projekto pavadinimą ir spustelėkite Gerai, kad jį išsaugotumėte
Tai sukurs naują WCF paslaugų programos projektą jūsų nurodytu vardu. Projekte taip pat būtų numatytoji paslauga, skirta tik iliustracijai.
RESTful WCF paslaugos įgyvendinimas
Dirbdami su WCF, pirmiausia turite sudaryti paslaugų sutartį ir tada apibrėžti joje paslaugų operacijas ar operacijų sutartis. Paprastai WCF paslaugą sudaro šie dalykai:
- Aptarnavimo klasė
- Paslaugų sutartis
- Viena ar daugiau operacijų sutarčių
- Vienas ar daugiau galinių taškų
- Prieglobos aplinka
„ServiceContract“ naudojamas nurodyti operacijoms, kurias paslaugų klientas gali naudoti. Šis kodo fragmentas parodo, kaip atrodo paslaugų sutartis - vėliau tai pakeisime, kad ji būtų RESTful.
[„ServiceContract“]
viešoji sąsaja „ICustomerService“
{
[OperationContract]
„GetCustomerList“ () sąrašas;
}
„DataContract“ naudojama duomenims, kuriais reikia keistis tarp paslaugų teikėjo ir paslaugos vartotojo, apibūdinti. Apsvarstykite šį „DataContract“ pavadinimą „Klientas“.
[„DataContract“ (vardų sritis = "")]
viešosios klasės Klientas
{
[DataMember]
public Int32 CustomerID {get; rinkinys; }
[DataMember]
public string FirstName {get; rinkinys; }
[DataMember]
vieša eilutė Pavardė {get; rinkinys; }
[DataMember]
viešasis eilutės adresas {get; rinkinys; }
}
Operacijos sutartis naudojama metodo, kaip paslaugos metodo, atskleidimui, taip pat sandorio srautui, paslaugos operacijos krypčiai ir galimai susietai (-oms) gedimo sutarčiai. Šis kodo fragmentas parodo, kaip galite deklaruoti paslaugų operaciją naudodami atributą „OperationContract“ ir naudodami „WebInvoke“ atributą nurodydami HTTP operaciją, URI, žiniatinklio pranešimo formatą ir kt.
[OperationContract]
[„WebInvoke“ (metodas = "GET", ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetCustomers")]
„GetCustomerList“ () sąrašas;
Šis kodo fragmentas parodo, kaip klientų aptarnavimas gali būti RESTful, pritaikant „WebInvoke“ atributą jo aptarnavimo metodui.
viešoji sąsaja „ICustomerService“
{
[OperationContract]
[„WebInvoke“ (metodas = „GET“,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "GetCustomers")]
„GetCustomerList“ () sąrašas;
}
„CustomerService“ klasė pratęsia „ICustomerService“ paslaugų teikimo sutartį ir teikia paslaugų operacijos „GetCustomerList“ įgyvendinimą. Štai kaip atrodys „CustomerService“ klasė.
[AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
viešosios klasės „CustomerService“: „ICustomerService“
{
viešas sąrašas „GetCustomerList“ ()
{
grąžinti PopulateCustomerData ();
}
privatus sąrašas „PopulateCustomerData“ ()
{
Sąrašas lstCustomer = naujas sąrašas ();
Kliento klientas1 = naujas klientas ();
klientas1.CustomerID = 1;
klientas1.Vardas = "Jonas";
klientas1.LastName = "Meaney";
klientas1.Adresas = "Chicago";
lstCustomer.Add (klientas1);
Kliento klientas2 = naujas klientas ();
klientas2.CustomerID = 1;
klientas2.Vardas = "Petras";
klientas2.LastName = "Shaw";
klientas2.Adresas = "Niujorkas";
lstCustomer.Add (klientas2);
grąžinti lstCustomer;
}
}
Atkreipkite dėmesį, kad metodas „PopulateCustomerData“ nėra paslaugų metodas; tai yra privatus metodas, kuris pateikia klientų įrašų sąrašą ir iškviečiamas iš „GetCustomerList“ paslaugos metodo.
Kitas dalykas, kurį turėtumėte padaryti, yra sukonfigūruoti WCF paslaugą. Norėdami tai padaryti, turėsite nurodyti susiejimo ir pabaigos taško informaciją, taip pat paslaugų elgseną. Šis kodo fragmentas parodo, kaip turėtų atrodyti šios paslaugos konfigūracija.
Ir tai viskas, ką turite padaryti. Dabar galite atidaryti žiniatinklio naršyklę ir išbandyti savo WCF RESTful paslaugą.