Programovanie

Ako vytvoriť službu RESTful v WCF

WCF (Windows Communication Foundation) je bezpečná, spoľahlivá a škálovateľná platforma na zasielanie správ, ktorú je možné použiť na vytváranie webových služieb v sieti .Net. Poskytuje jednotný programovací model pre vývoj aplikácií orientovaných na služby.

Môžete použiť WCF na vytvorenie služieb RESTful v .NET. REST (Representational State Transfer) je paradigma architektúry, ktorá je v súlade s princípmi architektúry REST. Architektúra REST je založená na koncepcii zdrojov: Na vyjadrenie stavu a funkčnosti aplikácie používa zdroje. Tieto zdroje sú zase identifikované pomocou URI cez protokol HTTP.

Vytvorenie služby WCF

V tejto časti preskúmame, ako môžeme vytvoriť službu RESTful v WCF. Najprv si vytvoríme novú službu WCF v Visual Studio. Postupujte podľa pokynov uvedených nižšie. Upozorňujeme, že na zostavenie aplikácie ilustrovanej v tomto článku som použil Visual Studio 2015, aj keď môžete použiť aj Visual Studio 2012 alebo 2013.

  1. Otvorte Visual Studio 2015
  2. V ponuke Súbor v prostredí Visual Studio IDE kliknite na Štart -> Súbor -> Nové -> Projekt
  3. Ďalej vyberte WCF zo zoznamu zobrazených šablón projektu
  4. Na pravej bočnej table vyberte možnosť „Aplikácia služby WCF“
  5. Zadajte názov pre svoj projekt služby WCF a kliknutím na tlačidlo OK ho uložte

Týmto by sa vytvoril nový projekt aplikácie služby WCF v zadanom mene. Projekt by tiež obsahoval predvolenú službu iba na ilustračné účely.

Implementácia služby RESTful WCF

Pri práci s WCF musíte najskôr vytvoriť zmluvu o službe a potom v nej definovať operácie služby alebo zmluvy o prevádzke. Služba WCF zvyčajne pozostáva z nasledujúcich položiek:

  1. Trieda služby
  2. Servisná zmluva
  3. Jedna alebo viac prevádzkových zmlúv
  4. Jeden alebo viac koncových bodov
  5. Hostiteľské prostredie

ServiceContract sa používa na určenie operácií, ktoré sú klientovi služby k dispozícii na spotrebovanie. Nasledujúci úryvok kódu ukazuje, ako vyzerá zmluva o poskytovaní služieb - neskôr ju upravíme, aby bola RESTful.

 [Servisná zmluva]

verejné rozhranie ICustomerService

    {

[OperationContract]

Zoznam GetCustomerList ();

    }

DataContract sa používa na opis údajov, ktoré je potrebné vymieňať medzi poskytovateľom služby a spotrebiteľom služby. Zvážte nasledujúci DataContract s názvom Zákazník.

[DataContract (Namespace = "")]

verejná trieda Zákazník

    {

[DataMember]

public Int32 CustomerID {get; sada; }

[DataMember]

verejný reťazec FirstName {get; sada; }

[DataMember]

verejný reťazec Priezvisko {get; sada; }

[DataMember]

public String Address {get; sada; }

    }

Zmluva o prevádzke sa používa na odhalenie metódy ako metódy služby a tiež toku transakcií, smeru operácie služby a tiež zmluvy (zmlúv) o poruche, ktoré môžu byť spojené. Nasledujúci úryvok kódu ilustruje, ako môžete deklarovať operáciu služby pomocou atribútu OperationContract a pomocou atribútu WebInvoke na zadanie operácie HTTP, Uri, formátu webových správ atď.

[OperationContract]

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

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

Zoznam GetCustomerList ();

Nasledujúci úryvok kódu ilustruje, ako je možné zákaznícky servis vytvoriť RESTful použitím atribútu WebInvoke na jeho metódu služby.

verejné rozhranie ICustomerService

    {

[OperationContract]

[WebInvoke (Metóda = "ZÍSKAŤ",

ResponseFormat = WebMessageFormat.Json,

BodyStyle = WebMessageBodyStyle.Wrapped,

UriTemplate = "GetCustomers")]

Zoznam GetCustomerList ();

    }

Trieda CustomerService rozširuje kontrakt na službu ICustomerService a poskytuje implementáciu operácie služby s názvom GetCustomerList. Takto by vyzerala trieda CustomerService.

[AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

verejná trieda CustomerService: ICustomerService

    {     

verejný zoznam GetCustomerList ()

        {

vrátiť PopulateCustomerData ();

        }

súkromný zoznam PopulateCustomerData ()

        {

Zoznam lstCustomer = nový Zoznam ();

Zákazník zákazník1 = nový zákazník ();

customer1.CustomerID = 1;

customer1.FirstName = "John";

customer1.LastName = "Meaney";

customer1.Address = "Chicago";

lstCustomer.Add (customer1);

Zákazník zákazník2 = nový zákazník ();

customer2.CustomerID = 1;

customer2.FirstName = "Peter";

customer2.LastName = "Shaw";

customer2.Address = "New York";

lstCustomer.Add (customer2);

vrátiť lstCustomer;

        }

    }

Upozorňujeme, že metóda PopulateCustomerData nie je metódou služby; je to súkromná metóda, ktorá vracia zoznam záznamov zákazníkov a volá sa z metódy služby GetCustomerList.

Ďalšia vec, ktorú by ste mali urobiť, je nakonfigurovať službu WCF. Ak to chcete urobiť, budete musieť určiť podrobnosti väzby a koncového bodu a tiež správanie služby. Nasledujúci úryvok kódu ukazuje, ako by mala vyzerať konfigurácia služby pre túto službu.

   

     

       

       

     

   

   

     

       

         

         

       

     

     

       

         

       

     

   

   

 

A to je všetko, čo musíte urobiť. Teraz môžete otvoriť webový prehľadávač a otestovať svoju službu WCF RESTful.

$config[zx-auto] not found$config[zx-overlay] not found