Aby ułatwić hostowanie serwisów opartych o REST została przedstawiona klasa
WebServiceHost. Klasa ta zawiera potrzebne bindingi.
Jedyne co musimy podać to typ serwisu oraz adres pod którym będzie dostępny:
Code:
var webServiceHost = new WebServiceHost(typeof(Service1), new Uri(@"http://localhost/RestService/"));
webServiceHost.Open();
Console.WriteLine("Press key to close");
Console.Read();
webServiceHost.Close();
Aby napisać klienta serwisu REST można skorzystać z klasy
WebChannelFactory<T>. Kod tworzenia jest wręcz identyczny jak w przypadku połączenia z serwisem SOAP:
Code:
var webChannelFactory = new WebChannelFactory<IService1>(new Uri("http://localhost/RestService/"));
var channel = webChannelFactory.CreateChannel();
List<Person> persons = channel.GetPersons();
foreach (var person in persons)
{
Console.WriteLine("{0} {1}", person.Id, person.Name);
}
Warto jeszcze w tym miejscu wspomnieć o klasie WebOperationContext. Klasa ta umożliwia dostęp do aktualnie przetwarzanego requestu w metodach serwisu. Możemy dzięki temu pobrać następujące dane:
- URI wywołania
- nagłówki
- ETag
- format danych
- długość wiadomości
Przykładowe wywołanie podczas wykonywania metody serwisu:
Brak komentarzy:
Prześlij komentarz