Nancy er et lett rammeverk for å bygge HTTP-baserte tjenester. Nancy foretrekker konvensjoner fremfor konfigurasjon og gir støtte for GET-, HEAD-, POST-, PUT-, DELETE- og PATCH-operasjoner. Nancy er også åpen kildekode under MIT-lisensen. Denne artikkelen presenterer en diskusjon om hvordan vi kan bruke Nancy med en ASP.Net Core-applikasjon.
Nancy er et nettrammeverk og har ingen avhengigheter av System.Web eller andre .Net-biblioteker. Viktigst, du er ikke begrenset til å følge MVC-mønsteret eller noe annet mønster hvis du bruker Nancy. Nancy er bare et tjenesteslutpunkt som kan svare på HTTP-verb. Dette gjør Nancy til et godt valg for å bygge nettsteder, APIer og webtjenester.
Nancy er vert-agnostiker. Du kan kjøre den i IIS, i WCF, som en Windows-tjeneste, innebygd i en .exe-fil, eller i et selv-vert program. Nancy er ganske enkelt å sette opp og tilpasse. En annen fordel med Nancy er den innebygde støtten for avhengighetsinjeksjon. Nancy tilbyr også et bibliotek som enkelt kan brukes til å teste forespørselsresponsen. Jeg vil diskutere denne funksjonen til Nancy i et senere innlegg.
Opprett et ASP.Net Core-prosjekt i Visual Studio
Først og fremst, la oss lage et ASP.Net Core-prosjekt i Visual Studio. Hvis du ikke har Visual Studio 2019 installert på systemet ditt, kan du laste det ned her.
For å opprette et nytt ASP.Net Core-prosjekt i Visual Studio 2019, følg trinnene nedenfor.
- Start Visual Studio IDE.
- Klikk på "Opprett nytt prosjekt."
- I vinduet "Opprett nytt prosjekt" velger du "ASP.Net Core Web Application" fra listen over maler som vises.
- Klikk på Neste.
- I vinduet "Konfigurer ditt nye prosjekt" angir du navnet og stedet for det nye prosjektet.
- Klikk på Opprett.
- I vinduet "Create New ASP.Net Core Web Application" velger du .Net Core som kjøretid og ASP.Net Core 2.2 (eller nyere) fra rullegardinlisten øverst.
- Velg “Web Application” som prosjektmal.
- Forsikre deg om at avmerkingsboksene "Aktiver Docker-støtte" og "Konfigurer for HTTPS" ikke er merket av da vi ikke bruker disse funksjonene her.
- Forsikre deg om at autentisering er satt til "ingen godkjenning", da vi heller ikke bruker autentisering.
- Klikk på Opprett.
Du bør nå ha et nytt ASP.Net Core-prosjekt klart til bruk i Visual Studio. Vi bruker dette prosjektet i avsnittene nedenfor for å bygge vår tilpassede vertstjeneste.
Installer og konfigurer Nancy i ASP.Net Core
For å installere Nancy, høyreklikker du på prosjektet ditt i Solution Explorer-vinduet og velger “Manage NuGet packages…”. I NuGet Package Manager-vinduet, søk etter Nancy og installer den. Alternativt kan du installere Nancy fra NuGet Package Manager-konsollen ved hjelp av følgende kommando.
Installasjonspakke Nancy
Når Nancy er installert, er det neste du bør gjøre å konfigurere Nancy. For å gjøre dette, bør du ringe UseNancy-metoden i Konfigurer-metoden i oppstartsklassen som vist nedenfor.
public void Configure (IApplicationBuilder app, IHostingEnvironment env){
app.UseMvc ();
app.UseOwin (x => x.UseNancy ());
}
Lag din første Nancy-modul i ASP.Net Core
Så langt så bra. La oss nå lage en Nancy-modul og skrive litt kode for den. En Nancy-modul er en standard C #-klasse som utvider NancyModule-klassen til Nancy-rammeverket.
offentlig klasse HomeModule: NancyModule{
}
Det bør bemerkes at du må erklære din Nancy-modul som offentlig. Nancy-rammeverket kan ikke oppdage en modul som ikke er merket som offentlig.
Lag ruter i en Nancy-modul i ASP.Net Core
En Nancy-modul definerer rutene i sin konstruktør. For å definere en rute i Nancy, bør du spesifisere HTTP-verbet, mønsteret, handlingen og (valgfritt) tilstanden. Her er et eksempel som illustrerer en definisjon av Nancy-ruten.
offentlig klasse HomeModule: NancyModule{
offentlig HomeModule ()
{
Get ("/", args => GetAllAuthors ());
Get ("/ {id: int}", args => GetAuthorById (args.id));
}
}
I hovedsak er en Nancy-modul et sted for å definere HTTP-sluttpunkter. Følgende kodebit illustrerer en Nancy-modul som kan håndtere tre forskjellige GET-forespørsler.
offentlig klasse HomeModule: NancyModule{
offentlig HomeModule ()
{
Få ("/", args => "Velkommen til Nancy.");
Get ("/ Test", args => "Test Message.");
Get ("/ Hello", args => $ "Hello {this.Request.Query [" name "]}");
}
}
Nancy er ikke bare lett, modulær og rask, men det er ganske enkelt å installere og konfigurere det. Du kan bruke Nancy til å tilby viktige HTTP-tjenester med minimal innsats. For å lære mer om Nancy-rammeverket, kan du se dokumentasjonen på GitHub.