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
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.
Wymagania
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:
- .NET Core
- Visual Studio Code
- Przeglądarkę Google Chrome z zainstalowaną wtyczką Postman, dzięki której będziemy mogli przetestować nasze API.
Tworzenie projektu
Aby utworzyć projekt otwieramy terminal i wywołujemy poniższe polecenia. Najpierw musimy utworzyć folder projektu i do niego przejść:
mkdir ListaZakupowApicd ListaZakupowApi
Następnie tworzymy solucje za pomocą komendy dotnet new webapi i przebudowujemy ją za pomocą komendy dotnet restore:
dotnet new webapidotnet restore
Pierwsze uruchomienie
Aby uruchomić nasze nowo powstałe API wywołujemy komendę:
dotnet run
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.
Dodanie Entity Framework Core
Następnie uruchamiamy Visual Studio Code i otwieramy za jego pomocą folder ListaZakupowApi.
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" />Następnie dodajemy linijkę odpowiedzialną za Entity w pliku ListaZakupowApi.csproj w sekcji ItemGroup, która odpowiada za PackageReference:
Po dodaniu referencji musimy przywrócić pakiety naszej aplikacji za pomocą komendy w konsoli:
dotnet restoreModel danych
Musimy stworzyć klasę, która będzie reprezentować dane, którymi będziemy manipulować w tworzonym API. W modelu musimy przechowywać:
- Identyfikator
- Nazwę produktu
- Ilość
Musimy utworzyć folder Models, w którym stworzymy naszą klasę.
Komunikacja z bazą danych
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.
Rejestrowanie
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ć:
using Microsoft.EntityFrameworkCore;using ListaZakupow.Models
Następnie w metodzie ConfigureServices dodamy:
services.AddDbContext<TodoContext>(_ => _.UseInMemoryDatabase());Dodanie nowego kontrolera
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:
- GetAll – która zwróci nam listę wszystkich zakupów
- GetById z parametrem id, która zwróci nam tylko jeden, konkretny element.
Po uruchomieniu aplikacji i wejściu pod adres localhost:5000\api\listazakupow powinniśmy otrzymać listę wszystkich zakupów w formie tablicy JSON.
Implementacja pozostałych operacji CRUD
Następnie trzeba dodać metody:
- Create – odpowiedzialna za tworzenie nowego obiektu
- Update – odpowiedzialna za aktualizacje obiektu
- Delete – odpowiedzialna za usuwanie obiektu
Create
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:
{„name”: „Masło”,
„count”: 1
}
Następnie klikamy przycisk Send. W odpowiedzi powinniśmy dostać nowy element dodany do bazy danych.
Update
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.
W zapytaniu tworzymy JSON z danymi nowego obiektu zakupy:
{W zapytaniu tworzymy JSON z danymi nowego obiektu zakupy:
„id”: 1,
„name”: „Masło”,
„count”: 1
}
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:5000\api\listazakupow i upewnić się, że odpowiedni rekord został zaktualizowany.
Delete
Tworzymy metodę Delete z atrybutem [HttpDelete(„id”)], dla której jako parametr wchodzi id obiektu, który chcemy usunąć.
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.
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.
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
localhost:5000/api/listazakupow/1
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.
Zakończenie
Udało się stworzyć WebApi, w którym możemy tworzyć, odczytywać, edytować i usuwać dane.
W tym artykule nauczyliśmy się
- Stworzyć projekt z konsoli przy pomocy dotnet.
- Stworzyć proste WebApi.
- Testować api przy pomocy Postman.
Pełen kod do aplikacji znajduje się w repozytorium GitHub.
Komentarze
Prześlij komentarz