Tworzenie projektu ASP.NET Core Web API

Utworzenie nowego projektu ASP.NET Core

1. Uruchamiamy wiersz poleceń jako administrator (command prompt wywoływany za pomocą polecenia cmd):

Command prompt
2. Tworzymy nowy projekt ASP.NET Core Web API. W tym celu w wierszu poleceń wpisujemy  poniższe polecenie i klikamy przycisk Enter. Polecenie to utworzy nam nowy projekt o nazwie BlueYonder.Flights na dysku w folderze Azure:

Command prompt

3. Jak już projekt zostanie utworzony, zmieniamy domyślny folder wiersza poleceń na nasz folder z projektem za pomocą następującego polecenia:

Zmiana ścieżki

Utworzenie modelu Entity Framework Core

1. Abyśmy mogli używać Entity Framework Core w naszym projekcie, potrzebujemy zainstalować odpowiedni pakiet przy użyciu poniższego polecenia:

Dodanie biblioteki SqlServer

2. Aby przywrócić wszystkie pakiety i biblioteki, wymagane w naszym projekcie, uruchamiamy poniższe polecenie z poziomu wiersza poleceń:

dotnet restore

3. Aby otworzyć naszą aplikację w Visual Studio Code, w wierszu poleceń wpisujemy poniższe polecenie:

4. Folder z naszym projektem BlueYonder.Flights został otwarty w Visual Studio Code:

    • Klikamy Yes przy wiadomości Required assets to build and debug are missing from 'BlueYonder.Flights'.Add them?. Pozwoli to na zbudowanie (ang. build) naszego projektu i sprawdzenie, czy nie ma błędów w kodzie.
    • Jeśli pojawi się informacja There are unresolved dependencies, klikamy opcję Restore:

Visual Studio Code

5. Prawym przyciskiem myszy klikamy wewnątrz panelu File Explorer po lewej stronie i wybieramy opcję New Folder, a następnie nazywamy go Models:

Utworzenie folderu models

6. Prawym przyciskiem myszy klikamy na folderze Models, wybieramy opcję New C# Class i nazywamy ją Flight.cs:

Utworzenie klasy Flight

7. Na górze klasy dodajemy następującą przestrzeń (ang. namespace):

Dodanie przestrzeni

8. Aby nasz model spełniał swoje zadanie, dodajemy następujące właściwości do klasy Flight:

Dodanie właściwości do klasy

Stworzenie klasy DbContext

1. Prawym klikamy folder Models, wybieramy opcję New C# Class, a potem nazywamy ją FlightsContext.cs:

Ddoanie klasy FlightsContext

2. Na górze pliku FlightsContext.cs dodajemy następującą przestrzeń:

Dodanie przestrzeni nazw

3. Nasza klasa FlightsContext będzie dziedziczyła z klasy DbContext, więc po nazwie klasy dodajemy takie dziedziczenie:

Dodanie DbContext

4. Wewnątrz klasy dodajemy konstruktor i właściwość Flights, która będzie zapewniała nam dostęp do naszych danych, przy użyciu następującego kodu:

Dodanie konstruktora

5. Przechodzimy do klasy Startup.cs i dodajemy następujące przestrzenie:

Dodanie przestrzeni

6. W metodzie ConfigureServices dodajemy połączenie (ang. connection string) do bazy danych Microsoft SQL Server, którą zaraz utworzymy w chmurze Azure:

Dodanie connection string

Stworzenie kontrolera dla Web API
1. Prawym przyciskiem myszy klikamy na folderze Controllers i wybieramy opcję New C# Class. Nazywamy naszą klasę FlightsController.cs:
Dodanie kontrolera

2. Dodajemy referencję do folderu Models:

Dodanie przestrzeni

3. Dodajemy pole prywatne _context :

Dodanie pola _context

4. Aby wstrzyknąć kontekst bazy danych do kontrolera (inaczej mówiąc pozwolić na to, aby metody z naszego kontrolera mogły używać naszej bazy danych i operować na danych), używamy do tego konstruktora jak poniżej:

Dodanie konstruktora

Stworzenie akcji i użycie kontekstu Entity Framework Core

1. Aby pobrać listę wszystkich lotów, dodajemy metodę Get, w której użyjemy pola  _context, dzięki któremu połączymy się do naszej bazy danych i z tabeli dbo.Flights pobierzemy wszystkie loty i zwrócimy je w postaci listy:

Dodanie metody Get

2. Do kontrolera dodajemy 3 nowe przestrzenie nazw (ang. namespaces):

Dodanie przestrzeni

3. Aby dodać nowy przelot i zapisać go w bazie danych, dodajemy metodę Post, która w parametrze flight będzie przekazywała właściwości z modelu Flight, a następnie dodawała ten nowy lot do innych lotów. Następnie zapisujemy lot do bazy danych, za pomocą metody SaveChanges wracamy do akcji Get, która ma wyświetlić nam dodany właśnie przelot:

Dodanie metody Post

4. Nad klasą kontrolera dodajemy atrybut [Route(„api/[controller]”)] oraz dodajemy dziedziczenie z klasy ControllerBase, aby wskazać, że to jest API controller:

Dodanie atrybutu API

Wdrożenie aplikacji na platformę Azure

Stworzenie Azure Web App i bazy danych Azure SQL Server
1. Otwieramy przeglądarkę.
2 Przechodzimy do adresu https://portal.azure.com.
3. Jeśli strona poprosi o dane do logowania, wpisujemy adres email, klikamy przycisk Next (Następny), wpisujemy hasło, a potem klikamy przyciskSign In (Zaloguj się).
4. Jeśli pojawi się okno z pytaniem Stay signed in?, klikamy Yes:

Logowanie do Azure'a

Uwaga: Jeśli podczas procesu logowania zostanie wyświetlona strona z monitem o wybranie konta z listy wcześniej używanych kont, wybieramy konto, z którego wcześniej korzystaliśmy, a następnie kontynuujemy podawanie swoich poświadczeń.

Dodawanie poświadczeń

5. Aby wyświetlić wszystkie zasoby na Azurze, klikamy przycisk +Create a resource:

Tworzenie zasobu

6. Aby wybrać szablon dla app service, w oknie Create a resource, w polu wyszukiwania wpisujemy Web App + SQL i wybieramy z podpowiedzi szablon Web App + SQL:

Tworzenie app service

7. W oknie Web App + SQL, klikamy przycisk Create:

Tworzenie app service

8. W oknie WebApp + SQL wypełniamy następujące pola:

  • W polu App Name, wpisujemy nazwę blueyonderflightsbz:

Uwaga: Nazwa App Name będzie częścią URL i będzie obsługiwana przez domenę azurewebsites.net. Nazwa naszej aplikacji musi być unikalna w obrębie domeny. Możemy także skonfigurować na Azurze ustawienia dla naszej własnej domeny i wtedy nazwa taka musi być unikalna w obrębie naszej domeny.

  • Wybieramy subskrypcję.
  • Resource Group, klikamy link Create new, and potem wpisujemy nazwę grupy zasobów BlueYonderFlightsRG i klikamy OK:

Tworzenie app service

  • W polu App Service plan/Location klikamy znak > po prawej stronie:

Tworzenie app service

  • Klikamy przycisk + Create new:

Tworzenie app service

  • W oknie New App Service Plan w polu App Service Plan wpisujemy BlueYonderFlightsPlan, z listy rozwijanej Location wybieramy lokalizację, w której chcemy hostować naszą aplikację:

Tworzenie app service

  • Klikamy strzałkę po prawej stronie obok pozycji Pricing tier. Na stronie Spec Picker możemy wybrać parametry hostingu dla naszej aplikacji. Na zakładce Dev/Test wybieramy maszynę F1 (zapewni nam to darmowe użytkowanie aplikacji przez godzinę dziennie)  i klikamy Apply:

Wybór App Service Plan

  • W oknie New App Service Plan klikamy przycisk OK:

App Service Plan

  • Na stronie Web App + SQL klikamy znak > po prawej obok pola SQL Database:

Baza danych

  • W oknie SQL Database wpisujemy następujące informacje:
    • W polu Name wpisujemy BlueYonderFlightsDB.
    • Klikamy link Select Server poniżej Target server:

Serwer bazodanowy

  • W oknie New server wpisujemy następujące informacje:
    • W polu Server name wpisujemy blueyonderflightsserverdbbz.

Uwaga: Nazwa serwera powinna być unikalna w ramach domeny .database.windows.net.

    • W polu Server admin login wpisujemy Admin123.
    • W polach PasswordConfirm password wpisujemy silne hasło.
    • W polu Location wybieramy lokalizację, w którym chcemy hostować naszą bazę danych.
    • Klikamy przycisk Select.

Dodanie serwera bazodanowegp

  • Klikamy link Configure database pod polem Pricing tier:

Dodawanie abonamentu

  • Wybieramy opcję Serverless i klikamy przycisk Apply:

Uwaga: W opcji Serverless opłaty są naliczane co sekundę w oparciu o zużycie vCores. W opcji Provisioned opłaty są naliczane co godzinę w oparciu o wcześniej zadeklarowaną liczbę vCores i wielkość miejsca na przechowywanie danych. Możemy także wybrać inne rodzaje i wielkości baz danych, w tym bazę darmową po kliknięciu na link Looking for basic, standard, premium?:

Dodanie abonamentu

Dodawanie abonamentu

  • Klikamy przycisk Select:

Widok ustawień bazy danych

  • Klikamy przycisk Create:

Wszystkie ustawienia aplikacji i bazy danych

9. Po utworzeniu bazy danych, aby przejść do naszej bazy danych, po lewej stronie klikamy na menu, a potem wybieramy SQL Databases:

Przejście do baz danych

10. W oknie SQL databases klikamy na link prowadzący do naszej bazy danych:

Widok bazy danych

11. W oknie bazy danych klikamy na zakładce Overview klikamy przycisk Set server firewall na pasku na środku pod nazwą naszej bazy danych:

Przejście do ustawień firewalla

12. W oknie Firewall settings klikamy przycisk + Add client IP. W regułach zostaje nam dodany nasz adres IP, który pozwoli na połączenie do bazy danych. Klikamy przycisk Save, a potem przycisk Continue:

Ustawienie firewalla

13. Na samej górze klikamy link do naszej bazy danych, aby powrócić na zakładkę Overview. W panelu po lewej stronie klikamy Query editor (preview):

Ustawienia bazay danych

14. Klikamy Login, wpisujemy nasze hasło, a potem klikamy OK:

Logowanie do bazy danych

15. Aby stworzyć nową tabelę w naszej bazie, wewnątrz zakładki Query 1, wklejamy następujący skrypt i klikamy przycisk Run:

Stworzenie nowej tabeli

16. Zamykamy zakładkę Query 1 i w bazie danych sprawdzamy, czy nasza tabela jest widoczna:

Sprawdzenie, czy tabela jest widoczna

Wdrożenie  Azure Web App
1. Wracamy na stronę główną Azure Portal klikając link Home w lewym górnym rogu.
Uwaga: Jeśli pojawi się nam takie okno dialogowe klikamy przycisk OK:Powrót na stronę główną

2. Aby wyświetlić nasz App Service, klikamy menu po lewej stronie i wybieramy App Services:

Przejście do usług
3. Żeby zobaczyć konfigurację naszego w zakładce App Services klikamy link do naszej aplikacji:

Przejście do bazy danych

4. Aby dodać poświadczenia, dzięki którym będziemy mogli wdrożyć naszą aplikację do app service, pod sekscją DEPLOYMENT klikamy Deployment Center, a potem przechodzimy na zakładkę FTPS Credentials:

Dodanie poświadczeń

5. W sekcji User scope dodajemy następujące dane:

    • FTP/deployment username wpisujemy FTPBlueYonderFlightsUserBZ.
    • W polach Password i Confirm password wpisujemy złożone hasło.
    • Klikamy Save:

Dodanie szczegółów poświadczeń

Uwaga: Powyższe poświadczenia udostępniają opcje wdrażania aplikacji z wiersza polecenia.

6. W panelu po lewej stronie w sekcji Monitoring klikamy App Service Logs i zapisujemy w notatniku nazwę FTP/deployment username:

Zanotowanie poświadczeńń

7. Przełączamy się do Visual Studio Code.

8. Klikamy prawym przyciskiem myszy w panelu File Explorer po lewej stronie, wybieramy folder Properties.

9. Klikamy prawym przyciskiem myszy na folderze Properties, wybieramy New Folder i nazywamy ten folder PublishProfiles.

10. Do folderu PublishProfiles dodajemy plik Azure.pubxml:

Tworzenie Azure.pubxml

11. Wklejamy następujący kod, modyfikując odpowiednio nazwy PublishSiteName (FTP z notatnika) i Username (deployment username z notatnika) :

Dodanie zawartości do pliku Azure.pubxml

12. W wierszu poleceń wklejamy następującą komendę:

Uwaga: W przypadku, kiedy Publish nie przechodzi, należy zrestartować app service blueyonderflightsbz na Azurze (zakładka Overview). Po uruchomieniu możemy zobaczyć pustą tablicę jako rezultat:

Pusta tablica

Test Web API
1. Przechodzimy do portalu Azure.
2. Po lewej stronie klikamy SQL Databases.
3. Klikamy nazwę naszej bazy danych, a po przejściu do bazy danych po lewej stronie klikamy Query editor(preview).
4. Klikamy Login, a następnie wpisujemy nasze hasło.
5. W oknie klikamy +New Query i wywołujemy następujące polecenie, które stworzy nam 6 lotów:

Dodanie dodanych do bazy

6. Aby pobrać wszystkie przeloty z bazy danych, wklejamy następujący skrypt do Query 1, and potem klikamy Run:

7. Jeśli odświeżymy naszą aplikację, możemy zobaczyć, że aplikacja także zwraca nasze przeloty:

Sprawdzenie działania aplikacji

W ten oto sposób stworzyliśmy aplikację, za pomocą której możemy odczytać dane z bazy AzureSQL Server.

Gotowa aplikacja do pobrania z mojego Githuba.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *