Dzisiaj pokażę jak skonfigurowałem mój web service Weight, który będzie wywoływała aplikacja mobilna Perfect Life w celu zapisania(i odczytania) wagi użytkownika na serwerze.
Dotychczas tworzyłem usługi w ASP.NET 4 i umieszczałem na Azure. Mógłbym tak zrobić i tym razem, ale stawiam na rozwój i chcę użyć ASP.NET MVC Core i Visual Studio 2017.
Jak zacząć? Tworzymy nowy projekt w Visual Studio. Będzie to aplikacja webowa ASP.NET Core.
Po utworzeniu projektu dodajemy następujące linie w pliku .csproj(pamiętajmy, że Microsoft wycofał się ostatecznie z pliku project.json wracając do formatu XML).
Konfiguracja pakietów wygląda tak:

Jeśli wystartujemy naszą aplikację na serwerze IIS a następnie spróbujemy wywołać usługę za pomocą Postmana, albo dowolnej przeglądarki www, to otrzymamy błąd 406.
Aby ten problem rozwiązać dodajemy następujący fragment w klasie Srartup:

Wstępnie kontroler dla mojej usługi obejmuje dwie metody:
POST - akcja będzie służyć do zapisu wagi przez użytkownika.
GET - akcja umożliwiająca odczytanie wszystkich dotychczasowych pomiarów dla podanego użytkownika.
Zwróćmy uwagę na sygnaturę metody Post:
public void Post([FromBody]string userName, [FromBody]int weight)
Jeśli zastanawiasz się dlaczego użyłem atrybutów [FromBody] to już wyjaśniam. Są one tu konieczne ponieważ używamy prostych typów: string, oraz int.
Ponieważ w przypadku typów prostych ASP.NET MVC domyślnie poszukuje parametrów żądania w URL'u, musimy dodać [FromBody].
Oto kod:

Jak to będzie działać w praktyce?
Testujemy za pomocą Postmana:

Dotychczas tworzyłem usługi w ASP.NET 4 i umieszczałem na Azure. Mógłbym tak zrobić i tym razem, ale stawiam na rozwój i chcę użyć ASP.NET MVC Core i Visual Studio 2017.
Jak zacząć? Tworzymy nowy projekt w Visual Studio. Będzie to aplikacja webowa ASP.NET Core.
Po utworzeniu projektu dodajemy następujące linie w pliku .csproj(pamiętajmy, że Microsoft wycofał się ostatecznie z pliku project.json wracając do formatu XML).
Konfiguracja pakietów wygląda tak:

Jeśli wystartujemy naszą aplikację na serwerze IIS a następnie spróbujemy wywołać usługę za pomocą Postmana, albo dowolnej przeglądarki www, to otrzymamy błąd 406.
Aby ten problem rozwiązać dodajemy następujący fragment w klasie Srartup:

Wstępnie kontroler dla mojej usługi obejmuje dwie metody:
POST - akcja będzie służyć do zapisu wagi przez użytkownika.
GET - akcja umożliwiająca odczytanie wszystkich dotychczasowych pomiarów dla podanego użytkownika.
Zwróćmy uwagę na sygnaturę metody Post:
public void Post([FromBody]string userName, [FromBody]int weight)
Jeśli zastanawiasz się dlaczego użyłem atrybutów [FromBody] to już wyjaśniam. Są one tu konieczne ponieważ używamy prostych typów: string, oraz int.
Ponieważ w przypadku typów prostych ASP.NET MVC domyślnie poszukuje parametrów żądania w URL'u, musimy dodać [FromBody].
Oto kod:

Jak to będzie działać w praktyce?
Testujemy za pomocą Postmana:

Komentarze
Prześlij komentarz