Ohjelmointi

Kuinka luoda RESTful-palvelu WCF: ssä

WCF (Windows Communication Foundation) on turvallinen, luotettava ja skaalautuva viestialusta, jota voidaan käyttää verkkopalvelujen rakentamiseen .Net-verkossa. Se tarjoaa yhtenäisen ohjelmointimallin palvelukeskeisten sovellusten kehittämiseksi.

WCF: n avulla voit rakentaa RESTful-palveluja .NET-verkkoon. REST (Representational State Transfer) on REST-arkkitehtuurin periaatteiden mukainen arkkitehtuuriparadigma. REST-arkkitehtuuri perustuu resurssien käsitteeseen: Se käyttää resursseja sovelluksen tilan ja toiminnallisuuden esittämiseen. Nämä resurssit puolestaan ​​tunnistetaan URI: n avulla HTTP-protokollan kautta.

WCF-palvelun luominen

Tässä osiossa tutkitaan, kuinka voimme rakentaa RESTful-palvelun WCF: ään. Ensinnäkin, luodaan uusi WCF-palvelu Visual Studiossa. Voit tehdä tämän noudattamalla alla esitettyjä vaiheita. Huomaa, että tässä artikkelissa kuvatun sovelluksen rakentamiseen olen käyttänyt Visual Studio 2015: ää, vaikka voit käyttää myös Visual Studio 2012: ta tai 2013: ta.

  1. Avaa Visual Studio 2015
  2. Napsauta Visual Studio IDE: n Tiedosto-valikossa Käynnistä -> Tiedosto -> Uusi -> Projekti
  3. Valitse seuraavaksi WCF näkyvistä projektimalleista
  4. Valitse "WCF-palvelusovellus" oikeanpuoleisesta ruudusta
  5. Määritä WCF-palveluprojektisi nimi ja tallenna se napsauttamalla OK

Tämä luo uuden WCF-palvelusovellushankkeen määrittämääsi nimeen. Projekti sisältäisi myös oletuspalvelun vain havainnollistamistarkoituksiin.

RESTful WCF -palvelun toteuttaminen

Työskennellessäsi WCF: n kanssa sinun on ensin luotava palvelusopimus ja määriteltävä sitten huoltotoimet tai käyttösopimukset. Tyypillisesti WCF-palvelu koostuu seuraavista:

  1. Palveluluokka
  2. Palvelusopimus
  3. Yksi tai useampi toimintasopimus
  4. Yksi tai useampi päätepiste
  5. Hosting-ympäristö

ServiceContract-palvelua käytetään määrittämään toiminnot, joita palveluasiakas voi käyttää. Seuraava koodinpätkä näyttää, miltä palvelusopimus näyttää - muokkaamme sitä myöhemmin, jotta siitä tulee RESTful.

 [Palvelusopimus]

julkinen käyttöliittymä ICustomerService

    {

[OperationContract]

Luettele GetCustomerList ();

    }

DataContractia käytetään kuvaamaan tietoja, jotka on vaihdettava palveluntarjoajan ja palvelun kuluttajan välillä. Harkitse seuraavaa DataContract-asiakasta.

[DataContract (nimiavaruus = "")]

julkisen luokan asiakas

    {

[DataMember]

public Int32 CustomerID {get; aseta; }

[DataMember]

julkinen merkkijono Etunimi {get; aseta; }

[DataMember]

julkinen merkkijono Sukunimi {get; aseta; }

[DataMember]

julkinen merkkijono-osoite {get; aseta; }

    }

Toimintasopimusta käytetään paljastamaan menetelmä palvelumenetelmänä ja myös tapahtumavirta, palvelun toiminnan suunta ja myös mahdollisesti liittyvät vikasopimukset. Seuraava koodinpätkä kuvaa, kuinka voit ilmoittaa palvelutoiminnon käyttämällä OperationContract-määritettä ja WebInvoke-määritteen avulla määritellä HTTP-operaatio, Uri, Web-viestimuoto jne.

[OperationContract]

[WebInvoke (menetelmä = "GET", ResponseFormat = WebMessageFormat.Json,

BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "Hanki asiakkaat")]

Luettele GetCustomerList ();

Seuraava koodinpätkä kuvaa, kuinka asiakaspalvelusta voidaan tehdä RESTful soveltamalla WebInvoke-määritettä sen palvelumenetelmään.

julkinen käyttöliittymä ICustomerService

    {

[OperationContract]

[WebInvoke (menetelmä = "GET",

ResponseFormat = WebMessageFormat.Json,

BodyStyle = WebMessageBodyStyle.Wrapped,

UriTemplate = "Hanki asiakkaat")]

Luettele GetCustomerList ();

    }

CustomerService-luokka pidentää ICustomerService-palvelusopimusta ja toteuttaa GetCustomerList-nimisen palvelutoiminnon. Näin CustomerService-luokka näyttäisi.

[AspNetCompatibilityRequirements (RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

julkisen luokan asiakaspalvelu: ICustomerService

    {     

julkinen luettelo GetCustomerList ()

        {

palauta PopulateCustomerData ();

        }

yksityinen luettelo PopulateCustomerData ()

        {

Lista lstCustomer = uusi Lista ();

Asiakasasiakas1 = uusi asiakas ();

asiakas1.CustomerID = 1;

asiakas1.Etunimi = "John";

asiakas1.LastName = "Meaney";

asiakas1.osoite = "Chicago";

lstCustomer.Add (asiakas1);

Asiakasasiakas2 = uusi asiakas ();

asiakas2.asiakasID = 1;

asiakas2.Etunimi = "Pietari";

asiakas2.LastName = "Shaw";

asiakas2.osoite = "New York";

lstCustomer.Add (asiakas2);

paluu lstCustomer;

        }

    }

Huomaa, että PopulateCustomerData-menetelmä ei ole palvelumenetelmä; se on yksityinen menetelmä, joka palauttaa luettelon asiakastietueista ja jota kutsutaan GetCustomerList-palvelumenetelmästä.

Seuraava asia, jonka sinun pitäisi tehdä, on määrittää WCF-palvelu. Tätä varten sinun on määritettävä sidonnan ja päätepisteen yksityiskohdat sekä palvelukäyttäytyminen. Seuraava koodinpätkä näyttää, miltä palvelukokoonpanon tulisi näyttää tältä palvelulta.

   

     

       

       

     

   

   

     

       

         

         

       

     

     

       

         

       

     

   

   

 

Ja se on kaikki mitä sinun on tehtävä. Voit nyt avata verkkoselaimen ja testata WCF RESTful -palvelua.

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