Jest to nowoczesny Framework do tworzenia aplikacji zarówno desktopowych, jak i internetowych. Core jest tworzone w idei otwartego oprogramowania – całe repozytorium kodu jest dostępne za darmo na GitHub. ASP .NET Core jest wieloplatformowy, co oznacza, że możemy tworzyć i uruchamiać aplikacje na wielu różnych systemach operacyjnych, takich jak Windows, Mac OS X i Linux. Aby rozpocząć pracę nad naszym API potrzebujemy komputera lub maszyny wirtualnej z zainstalowanym Linuxem. Na rynku istnieje wiele dystrybucji Linuxa, jednak wśród nich warto wyróżnić Ubuntu, który jest zarówno bardzo prosty w obsłudze, jak i przyjazny programistom. Na naszej maszynie musimy zainstalować następujące oprogramowanie: Aby utworzyć projekt otwieramy terminal i wywołujemy poniższe polecenia. Najpierw musimy utworzyć folder projektu i do niego przejść: Następnie tworzymy solucje za pomocą komendy dotnet new webapi i przebudowujemy ją za pomocą komendy dotnet restore: Aby uruchomić nasze nowo powstałe API wywołujemy komendę: Po odwiedzeniu strony localhost:5000/api/values powinino nam się wyświetlić [„value1”,”value2”]. Jeżeli widzimy tę frazę, to znaczy, że nasze API działa. Następnie uruchamiamy Visual Studio Code i otwieramy za jego pomocą folder ListaZakupowApi. Po dodaniu referencji musimy przywrócić pakiety naszej aplikacji za pomocą komendy w konsoli: Musimy stworzyć klasę, która będzie reprezentować dane, którymi będziemy manipulować w tworzonym API. W modelu musimy przechowywać: Musimy utworzyć folder Models, w którym stworzymy naszą klasę. Następnie trzeba stworzyć klasę ListaZakupowContext, która będzie dziedziczyć po DbContext. Klasa DbContext jest odpowiedzialna za komunikację z bazą danych. W katalogu Models dodajemy plik ListaZakupowContext.cs. Następnie trzeba zarejestrować ListaZakupowContext w pliku Startup.cs. Musimy dodać referencje do Entity i do klas utworzonych w katalogu Models. Aby to zrobić, przed namespace musimy dodać: Następnie w metodzie ConfigureServices dodamy: W folderze Controllers należy utworzyć nową klasę ListaZakupowController. Następnie trzeba utworzyć kontruktor, który będzie inicjalizował komunikację z bazą danych. Dla ułatwienia testowania dodałem fragment kodu, który tworzy rekord w bazie danych, jeżeli liczba zakupów jest pusta. Nasza baza jest trzymana w pamięci, więc po każdym ponownym uruchomieniu aplikacji będzie ona zerowana. Następnie dodajemy dwie metody: Po uruchomieniu aplikacji i wejściu pod adres localhost:5000apilistazakupow powinniśmy otrzymać listę wszystkich zakupów w formie tablicy JSON. Następnie trzeba dodać metody: Najpierw tworzymy metodę Create z atrybutem [HttpPost], której parametrami będzie obiekt klasy Zakup. Metoda sprawdza, czy ten obiekt nie jest pusty. Jeżeli nie jest pusty, wtedy dodaje go do bazy danych i wywołuje metodę GetById, a jako parametr przyjmuje id nowododanego obiektu. Dzięki wtyczce do Google Chrome – Postman – możemy z łatwością przetestować nową metodę. Trzeba ustawić adres naszego kontrolera. Następnie zmienimy typ zapytania na POST, w sekcji Body wybieramy Raw i zmieniamy typ danych na JSON. W zapytaniu tworzymy JSON z danymi nowego obiektu zakupy: Następnie klikamy przycisk Send. W odpowiedzi powinniśmy dostać nowy element dodany do bazy danych. Tworzymy metodę Update z atrybutem [HttpPut(„id”)] z parametrami id i obiektem zakup. Metoda ta sprawdzać będzie, czy obiekt nie jest pusty i czy w bazie danych istnieje rekord o podanym w parametrze identyfikatorze. Jeżeli tak, to zaktualizuje ten rekord i zwróci 204 – No Content. Aby przetestować nowo powstałą metodę uruchamiamy Postmana. Trzeba ustawić adres naszego kontrolera. Pamiętajmy, że musimy podać id – w tym przypadku adres będzie wyglądał tak: localhost:5000/api/listazakupow/1 Następnie zmienimy typ zapytania na PUT, w sekcji Body wybieramy Raw i zmieniamy typ danych na JSON. Następnie klikamy przycisk Send. Jeżeli wszystko poprawnie się wykonało, to powinno nam zwrócić 204 No Content. Aby mieć pewność, że wszystko działa poprawnie, można wejść na stronę localhost:5000apilistazakupow i upewnić się, że odpowiedni rekord został zaktualizowany. Tworzymy metodę Delete z atrybutem [HttpDelete(„id”)], dla której jako parametr wchodzi id obiektu, który chcemy usunąć. Aby przetestować nowo powstałą metodę uruchamiamy Postmana. Trzeba ustawić adres naszego kontrolera – pamiętajmy, że musimy podać id – w tym przypadku adres będzie wyglądał tak: Następnie zmienimy typ zapytania na DELETE, a sekcja Body musi być pusta. Po naciśnięciu Send powinno nam zwrócić 204 No Content. Udało się stworzyć WebApi, w którym możemy tworzyć, odczytywać, edytować i usuwać dane. W tym artykule nauczyliśmy się Pełen kod do aplikacji znajduje się w repozytorium GitHub.
WebApi na Linux przy użyciu .NET Core
W tym artykule opiszę jak stworzyć API przechowywującą listę zakupów w oparciu o ASP.NET Core na platformę Linux.
Opis API
API
Opis
Odpowiedz
GET /api/listazakupow
Pobierz wszystkie
Tablica elementu
GET /api/listazakupow/{id}
Pobierz konkretny element
Element
POST /api/listazakupow
Dodaj nowy element
Element
PUT /api/listazakupow
Zaktualizuj istniejący element
Element
DELETE /api/listazakupow/{id}
Usuń istniejący element
Informacja czy się udało usunąć
Co to ASP.NET Core
Wymagania
Tworzenie projektu
mkdir ListaZakupowApicd ListaZakupowApi
dotnet new webapidotnet restore
Pierwsze uruchomienie
dotnet run
Dodanie Entity Framework Core
Następnie dodajemy linijkę odpowiedzialną za Entity w pliku ListaZakupowApi.csproj w sekcji ItemGroup, która odpowiada za PackageReference:
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.0.0" />
dotnet restore
Model danych
Komunikacja z bazą danych
Rejestrowanie
using Microsoft.EntityFrameworkCore;using ListaZakupow.Models
services.AddDbContext<TodoContext>(_ => _.UseInMemoryDatabase());
Dodanie nowego kontrolera
Implementacja pozostałych operacji CRUD
Create
{ „name": „Masło", „count": 1}
Update
W zapytaniu tworzymy JSON z danymi nowego obiektu zakupy:
{ „id": 1, „name": „Masło", „count": 1}
Delete
Metoda ta sprawdza, czy istnieje w bazie danych obiekt o takim identyfikatorze i go usuwa. Na końcu, jeżeli wszystko się udało, zwraca nam 204 No Content.
localhost:5000/api/listazakupow/1Zakończenie
Zespół: Apps
Autor:
Bartosz Szewczyk
Bartosz Szewczyk
Ostatnie artykuły autora