Programiranje

Kako ustvariti storitev RESTful v WCF

WCF (Windows Communication Foundation) je varna, zanesljiva in razširljiva platforma za pošiljanje sporočil, ki jo lahko uporabimo za gradnjo spletnih storitev v .Netu. Zagotavlja enoten programski model za razvoj storitveno usmerjenih aplikacij.

WCF lahko uporabite za izdelavo storitev RESTful v .NET. REST (Reprezentativni državni prenos) je paradigma arhitekture, ki ustreza načelom arhitekture REST. Arhitektura REST temelji na konceptu virov: z viri predstavlja stanje in funkcionalnost aplikacije. Ti viri se nato identificirajo z uporabo URI-jev prek protokola HTTP.

Ustvarjanje storitve WCF

V tem poglavju bomo raziskali, kako lahko v WCF zgradimo storitev RESTful. Najprej ustvarimo novo storitev WCF v Visual Studio. Če želite to narediti, sledite spodnjim korakom. Upoštevajte, da sem za izdelavo aplikacije, prikazane v tem članku, uporabil Visual Studio 2015, čeprav lahko uporabite tudi Visual Studio 2012 ali 2013.

  1. Odprite Visual Studio 2015
  2. V meniju Datoteka v Visual Studio IDE kliknite Start -> Datoteka -> Novo -> Projekt
  3. Nato na seznamu prikazanih predlog predlog izberite WCF
  4. Na desni strani izberite "WCF Service Application"
  5. Določite ime za projekt storitve WCF in kliknite V redu, da ga shranite

S tem bi ustvarili nov projekt aplikacij za storitve WCF v imenu, ki ste ga določili. Projekt bi vseboval tudi privzeto storitev samo za ponazoritev.

Izvajanje storitve RESTful WCF

Pri delu z WCF morate najprej ustvariti pogodbo o storitvi in ​​nato v njej definirati storitvene operacije ali operativne pogodbe. Običajno storitev WCF vključuje naslednje:

  1. Servisni razred
  2. Pogodba o storitvi
  3. Ena ali več operativnih pogodb
  4. Ena ali več končnih točk
  5. Gostujoče okolje

ServiceContract se uporablja za določanje operacij, ki jih ima na voljo odjemalec storitve. Naslednji delček kode prikazuje, kako izgleda pogodba o storitvi - to bomo kasneje spremenili, da bo RESTful.

 [ServiceContract]

javni vmesnik ICustomerService

    {

[OperationContract]

Seznam GetCustomerList ();

    }

DataContract se uporablja za opis podatkov, ki jih je treba izmenjati med ponudnikom storitev in potrošnikom storitve. Razmislite o naslednjem DataContract, imenovanem stranka.

[DataContract (Namespace = "")]

kupec javnega razreda

    {

[DataMember]

javni Int32 CustomerID {get; set; }

[DataMember]

javni niz FirstName {get; set; }

[DataMember]

javni niz LastName {get; set; }

[DataMember]

javni nizni naslov {get; set; }

    }

Pogodba o obratovanju se uporablja za razkritje metode kot storitvene metode in tudi pretoka transakcij, smeri izvajanja storitve in tudi pogodb (-e) napake, ki so lahko povezane. Naslednji delček kode prikazuje, kako lahko prijavite operacijo storitve z atributom OperationContract in uporabo atributa WebInvoke za določanje operacije HTTP, Uri, obliko spletnega sporočila itd.

[OperationContract]

[WebInvoke (Metoda = "GET", ResponseFormat = WebMessageFormat.Json,

BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "GetCustomers")]

Seznam GetCustomerList ();

Naslednji delček kode ponazarja, kako lahko storitev za stranke naredite RESTful z uporabo atributa WebInvoke na njeni metodi storitve.

javni vmesnik ICustomerService

    {

[OperationContract]

[WebInvoke (metoda = "GET",

ResponseFormat = WebMessageFormat.Json,

BodyStyle = WebMessageBodyStyle.Zavit,

UriTemplate = "GetCustomers")]

Seznam GetCustomerList ();

    }

Razred CustomerService razširja pogodbo o storitvi ICustomerService in zagotavlja izvajanje storitvene operacije z imenom GetCustomerList. Evo, kako bi izgledal razred CustomerService.

[AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

javni razred CustomerService: ICustomerService

    {     

javni seznam GetCustomerList ()

        {

vrni PopulateCustomerData ();

        }

zasebni seznam PopulateCustomerData ()

        {

Seznam lstCustomer = nov seznam ();

Stranka stranka1 = nova stranka ();

kupec1.CustomerID = 1;

customer1.FirstName = "John";

customer1.LastName = "Meaney";

customer1.Address = "Chicago";

lstCustomer.Add (kupec1);

Stranka stranka2 = nova stranka ();

kupec2.CustomerID = 1;

customer2.FirstName = "Peter";

customer2.LastName = "Shaw";

customer2.Address = "New York";

lstCustomer.Add (kupec2);

vrni lstCustomer;

        }

    }

Upoštevajte, da metoda PopulateCustomerData ni servisna metoda; gre za zasebno metodo, ki vrne seznam evidenc strank in jo pokliče metoda storitve GetCustomerList.

Naslednja stvar, ki jo morate storiti, je konfiguriranje storitve WCF. Če želite to narediti, morate navesti podrobnosti vezave in končne točke ter tudi vedenje storitve. Naslednji delček kode prikazuje, kako naj izgleda konfiguracija storitve za to storitev.

   

     

       

       

     

   

   

     

       

         

         

       

     

     

       

         

       

     

   

   

 

In to je vse, kar morate storiti. Zdaj lahko odprete spletni brskalnik in preizkusite svojo storitev WCF RESTful.