KREIRANJE SQL WEB API SERVISA KOJI ČITA PODATKE IZ BAZE
Pre nego što se pristupi kreiranju web api servisa potrebno je proveriti da li je instalirano sledeće:
Pored web aplikacije koji kreiramo potrebno da imamo jednu bazu podataka, na primjer sql server bazu podataka u kojoj se nalaze neki podaci, npr. tabela za proizvode. Cilj web API aplikacije je da odgovori na zahtev klijenta za određenim proizvodom.
Kada se uputi GET zahtev, za određenim proizvodom na primer sa id = 15: |
Video 1: Jednostavan web API server koji čita podatke iz baze - 1. deoVideo 1: Jednostavan web API server koji čita podatke iz baze - 2. deo |
https://localhost:5001/products/15
aplikacija će pokušati da iz baze izvuče odgovarajući proizvod i vrati nazad aplikaciji( slika 2). Pomoću dodatnog paketa "Dapper", koji smo instalirali sa aplikacijom , odgovarajući red tabele će se pretvoriti u odgovarajući C# objekat koji ima istu strukturu kao tabela u bazi. Primer klase Product možete videti na slici 3.
Dalje, web api konvertuje podatke u JSON objekat a zatim se objekat vraća pregledaču(vidi sliku 4 ).
Dalje, web api konvertuje podatke u JSON objekat a zatim se objekat vraća pregledaču(vidi sliku 4 ).
Aplikacija treba da ima model klasu čija polja odgovaraju poljima koja se nalaze u bazi podataka da bi taj zapis mogao da se pretvori u c# objekat da bi aplikacija mogla da kreiraobjekat koji će da se poveže sa bazom podataka u kodu mora da se napravi klijent za bazu, a zato je potreban dodatni paket "Microsoft.Data.SqlClient".
Kreiranje restful web api servera
Da bi se kreirala nova web api aplikacija u Command Prompt-u u okviru prethodno kreiranog root foldera treba otkucati
Ako u command prompt-u otkucamo
code .
Pokrenuće se VS Code i otvoriti u njemu upravo kreirani projekat.
Sada se sa leve strane u exploreru mogu videti kreirani početni fajlovi upravo kreirane aplikacije. U desnom delu se vidi sadržaj početnog fajla Program.cs u kome se konfiguriše host objekat aplikacije. S obzirom da je potrebna baza za proizvode treba kreirati bazu, u ovom slučaju SQL Server bazu, koja će se zvati u ovom primeru "database_product". Baza i u njoj tabela "Products" je kreirana pomoću alata Microsoft SQL Server Management Studio. Dizajn kreirane tabele može se videti na slici ispod:
Da bi aplikacija konektovala na bazu potrebno je da budu instalirani gore pomenuti paketi:
Kreiraćemo ConnectionString unutar appsetings.json fajla |
Pogledajte u sledećem videu kako se koristi Dapper biblioteka za čitanje podataka iz baze i njihovo konverovanje u C# objekte. U videu je pokazana upotreba odgovarajućih querry-ja za tu namenu.
Koristan tutorijal o upotrebi Dapper-a: dapper-tutorial.net/ Ukoliko želite da isprobavate Dapper upite: dotnetfiddle.net/ |
U okviru startup fajla unutar metode configuration kreiraćemo objekat pomoću koga se uspostavlja veza sa bazom podataka. Za kreiranje tog objekta klase SqlConnection koristimo informacije zapisane u konekcionom stringu koji je definisan u appsettings.json fajlu, kao što se može videti na sledećoj slici:
.
Unutar ove metode vrši ubacivanje zavisnosti (DependencyInjection) između klasa u aplikaciji i njima potrebnih servisa i objeka. Unutar ove metode se kreiraju servisi koji se dodaju u kolekciju servisa(IServiceCollection), koji će biti dostupni u klasama unutar aplikacije preko parametara u konstruktoru. Ovaj koncept se zove IoC Inverzija kontrole i više o tome pogledajte u videu: IoC Inverzija kontrole u .Net aplikacijama. Takođe, treba dodati kontrolere u ovu kolekciju. |
|
Unutar metode Configure treba definisati potrebne "Middleware" i njihov redosled kojim treba da se izvrše. Više o tome pročitajte u članku: Middleware
Ova aplikacija će imati klase koje pripadaju modelu, kao i jednu kontroler klasu. Kao model kreiraćemo klasu Product koja će biti model klasa za objekte koji predstavljaju podatke o određenom proizvodu i imaće istu strukturu kao jedan zapis u bazi podataka, dakle imaće ista polja. Na slici 12 je prikazana klasa Product
Sledeće
Kreiranje kontrolera u asp.net web API aplikaciji >| |