Z uwagi na wygodę po stronie klienckiej, obiekty DTO należy pisać w poniższy sposób:
[Route("/entry")] public class Entry : IReturn<EntryResponse> { public DateTime Date { get; set; } public int Count { get; set; } } public class EntryResponse { public int Total { get; set; } public ResponseStatus ResponseStatus { get; set; } }
a więc tak, aby implementować interfejs IReturn<T> oraz w obiektach typu T zamieszczać ResponseStatus, gdzie automatycznie zostanie wstawiony kod błędu.
Samo wywołanie serwisu po stronie klienckiej można wykonać synchronicznie lub asynchronicznie, np.
var client = new JsonServiceClient("http://localhost:51270"); var response = client.Send(new Entry() {Count = 12}); Console.WriteLine(response.Total); client.SendAsync(new Entry() { Count = 24 }, resp => Console.WriteLine(resp.Total), (err,exc) => Console.WriteLine("error"));
Odpowiedź zostanie zdeserializowana do odpowiedniego typu.w przypadku obu wywołań. Nie trzeba podawać większej ilości parametrów, gdyż wszystkie są pobierane z obiektów DTO (route i typ zwracany). JsonServiceClient można wymienić na inne typy klienckie, takie jak: JsvServiceClient czy CsvServiceClient
Brak komentarzy:
Prześlij komentarz