Programmering

Sådan bruges Nancy i ASP.Net Core

Nancy er en let ramme til opbygning af HTTP-baserede tjenester. Nancy foretrækker konventioner frem for konfiguration og understøtter GET-, HEAD-, POST-, PUT-, DELETE- og PATCH-operationer. Nancy er også open source under MIT-licensen. Denne artikel præsenterer en diskussion af, hvordan vi kan bruge Nancy med en ASP.Net Core-applikation.

Nancy er en webramme og har ingen afhængigheder af System.Web eller andre .Net-biblioteker. Vigtigst er det, at du ikke er begrænset til at overholde MVC-mønsteret eller noget andet mønster, hvis du bruger Nancy. Nancy er bare et serviceendepunkt, der kan svare på HTTP-verber. Dette gør Nancy til et godt valg til opbygning af websteder, API'er og webtjenester.

Nancy er vært-agnostiker. Du kan køre det i IIS, i WCF, som en Windows-tjeneste, indlejret i en .exe-fil eller inde i et selvhostet program. Nancy er ret let at opsætte og tilpasse. En anden fordel ved Nancy er dens indbyggede støtte til afhængighedsinjektion. Nancy leverer også et bibliotek, der let kan bruges til at teste anmodnings-svar-cyklus. Jeg vil diskutere denne funktion af Nancy i et senere indlæg.

Opret et ASP.Net Core-projekt i Visual Studio

Lad os først oprette et ASP.Net Core-projekt i Visual Studio. Hvis du ikke har Visual Studio 2019 installeret på dit system, kan du downloade det her.

For at oprette et nyt ASP.Net Core-projekt i Visual Studio 2019 skal du følge nedenstående trin.

  1. Start Visual Studio IDE.
  2. Klik på "Opret nyt projekt."
  3. I vinduet "Opret nyt projekt" skal du vælge "ASP.Net Core Web Application" fra listen over skabeloner, der vises.
  4. Klik på Næste.
  5. I vinduet "Konfigurer dit nye projekt" skal du angive navnet og placeringen for det nye projekt.
  6. Klik på Opret.
  7. I vinduet "Opret ny ASP.Net Core-webapplikation" skal du vælge .Net Core som runtime og ASP.Net Core 2.2 (eller nyere) fra rullelisten øverst.
  8. Vælg "Webapplikation" som projektskabelon.
  9. Sørg for, at afkrydsningsfelterne "Aktivér Docker-support" og "Konfigurer til HTTPS" ikke er markeret, da vi ikke bruger disse funktioner her.
  10. Sørg for, at godkendelse er indstillet til "Ingen godkendelse", da vi heller ikke bruger godkendelse.
  11. Klik på Opret.

Du skal nu have et nyt ASP.Net Core-projekt klar til brug i Visual Studio. Vi bruger dette projekt i nedenstående afsnit til at opbygge vores tilpassede hostede service.

Installer og konfigurer Nancy i ASP.Net Core

For at installere Nancy skal du højreklikke på dit projekt i vinduet Solution Explorer og vælge “Manage NuGet packages…”. Søg derefter efter Nancy i NuGet Package Manager-vinduet og installer det. Alternativt kan du installere Nancy fra NuGet Package Manager-konsollen ved hjælp af følgende kommando.

Installationspakke Nancy

Når Nancy er blevet installeret, er den næste ting du skal gøre, at konfigurere Nancy. For at gøre dette skal du ringe til UseNancy-metoden i konfigurationsmetoden i opstartklassen som vist nedenfor.

public void Configure (IApplicationBuilder app, IHostingEnvironment env)

 {

app.UseMvc ();

app.UseOwin (x => x.UseNancy ());

 }

Opret dit første Nancy-modul i ASP.Net Core

Så langt så godt. Lad os nu oprette et Nancy-modul og skrive en kode til det. Et Nancy-modul er en standard C #-klasse, der udvider NancyModule-klassen i Nancy-rammen.

offentlig klasse HomeModule: NancyModule

{

}

Det skal bemærkes, at du skal erklære dit Nancy-modul som offentligt. Nancy-rammen kan ikke finde et modul, der ikke er markeret som offentligt.

Opret ruter i et Nancy-modul i ASP.Net Core

Et Nancy-modul definerer ruterne i sin konstruktør. For at definere en rute i Nancy skal du angive HTTP-verbet, mønsteret, handlingen og (valgfrit) betingelsen. Her er et eksempel, der illustrerer en Nancy-rute-definition.

offentlig klasse HomeModule: NancyModule

{

offentlig HomeModule ()

    {

Get ("/", args => GetAllAuthors ());

Hent ("/ {id: int}", args => GetAuthorById (args.id));

    }

}

I det væsentlige er et Nancy-modul et sted til at definere HTTP-slutpunkter. Følgende kodestykke illustrerer et Nancy-modul, der kan håndtere tre forskellige GET-anmodninger.

offentlig klasse HomeModule: NancyModule

    {

offentlig HomeModule ()

        {

Få ("/", args => "Velkommen til Nancy.");

Få ("/ Test", args => "Testmeddelelse.");

Get ("/ Hello", args => $ "Hello {this.Request.Query [" name "]}");

        }

    }

Nancy er ikke kun let, modulær og hurtig, men det er ret nemt at installere og konfigurere det. Du kan bruge Nancy til at levere essentielle HTTP-tjenester med minimal indsats. For at lære mere om Nancy-rammen kan du henvise til dokumentationen på GitHub.