W ramach projektu “Smart Lodówka” nadchodzi czas, aby podłączyć do Raspberry Pi czujnik otwarcia drzwi lodówki. Dzięki niemu będzie możliwe monitorowanie czy lodówka jest w danym momencie otwarta. Wygenerowany ciąg zdarzeń (otwarcie, zamknięcie lodówki) zostanie wysłany na serwer do WebApi, które następnie zapisze go w bazie danych.
Ten post jest właśnie o początkach pracy nad stroną serwerową. Jest to moja pierwsza publikacja aplikacji na hostingu Webio, na którym mam swoje strony. Sam blog uruchomiony jest na WordPressie, który jednak został automatycznie zainstalowany z “Galerii aplikacji Microsoft Web App” (efekt wow). Napomnę tylko, że wszystko przebiegło bez najmniejszego problemu. Ale po kolei.
1. Nowa solucja w Visual Studio
Stworzyłem pustą solucję o nazwie “SmartLodowka” i dodałem pusty webowy projekt “SmartLodowkaAPI”. Tutaj Visual Studio dodał też referencje do kompilatorów i Application Insight. Na razie usunąłem je z projektu. Na szczęście były to pakiety nugetowe, więc tylko trochę w nich posprzątałem :) Obecnie plik “packages.config” wygląda tak:
|
<?xml version="1.0" encoding="utf-8"?> <packages> <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" /> <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" /> <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" /> <package id="Microsoft.Owin" version="3.0.1" targetFramework="net452" /> <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net452" /> <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net452" /> <package id="Owin" version="1.0" targetFramework="net452" /> </packages> |
Jako, że chciałem aby WebApi było oparte na OWINie dodałem też odpowiednie pakiety, klasę startową Startup.cs i konfigurację Routingu. Celem tego ćwiczenia ma być sprawdzenie i skonfigurowanie publikowania aplikacji, więc sam kontroler posiada tylko dwie metody, które zwracają zahardkodowane obiekty.
|
private readonly List<Event> _tmpEvents = new List<Event> { new Event { Id = 1, Name = "Event 1" }, new Event { Id = 2, Name = "Event 2" }, new Event { Id = 3, Name = "Event 3" } }; |
2. Nowa poddomena w Webio
Kolejnym krokiem było utworzenie nowej poddomeny w panelu administracyjnym Webio. W tym celu przeszedłem na “Domeny” > “Dodaj domenę” > “Poddomena”. Nadałem jej nazwę “smartlodowka.creyn.pl” i zostawiłem domyślnie zaznaczone opcje. Potem przeszedłem do konfiguracji: “Witryny” > “smartlodowka.creyn.pl”. Aby utworzyć interesujący mnie profil przeszedłem na “Publikowanie”, gdzie wpisałem swoje hasło i dostałem opcję pobrania profilu. Kliknąłem na “Download Publishing Profile for this web site” i zapisałem plik na dysku.

3. Publikowanie
Na koniec w Visual Studio kliknąłem prawym przyciskiem myszy na nazwę projektu i wybrałem “Publish”:

Z dostępnych opcji wybrałem “Import” i wskazałem pobrany plik profilu. Po jego zaimportowaniu pojawił się automatycznie uzupełniony formularz. Po kliknięciu w “Validate Connection” okazało się, że wszystko działa. Następnie przeszedłem do konfiguracji mojej publikacji i do ostatniego okna podglądu zmian, jakie zostaną wykonane na serwerze. Potem już tylko “Publish” i aplikacja znalazła się na hostingu Webio.

Jak możecie się sami przekonać po wpisaniu w przeglądarkę adresu “http://smartlodowka.creyn.pl/api/events” dostajemy listę naszych eventów.

Teraz pozostaje tylko dodać obsługę zapisywania zdarzeń do bazy danych i zacząć konkretną pracę z lodówką :)
C.
Like this:
Like Loading...
Leave a Reply