Kako koristiti Nancy u ASP.Net Coreu

Nancy je lagani okvir za izgradnju HTTP usluga. Nancy preferira konvencije nad konfiguracijom i pruža podršku za operacije GET, HEAD, POST, PUT, DELETE i PATCH. Nancy je također otvoreni izvor pod licencom MIT. Ovaj članak predstavlja raspravu o tome kako možemo koristiti Nancy s aplikacijom ASP.Net Core.

Nancy je mrežni okvir i ne ovisi o System.Webu ili drugim knjižnicama .Net. Što je najvažnije, niste ograničeni na pridržavanje MVC uzorka ili bilo kojeg drugog uzorka ako koristite Nancy. Nancy je samo krajnja točka usluge koja može odgovoriti na HTTP glagole. To Nancy čini dobrim izborom za izradu web stranica, API-ja i web usluga.

Nancy je agnostičar domaćina. Možete ga pokrenuti u IIS-u, u WCF-u, kao Windows uslugu, ugrađenu u .exe datoteku ili unutar samostalne aplikacije. Nancy je vrlo jednostavno postaviti i prilagoditi. Još jedna prednost Nancyja je njegova ugrađena podrška za ubrizgavanje ovisnosti. Nancy također nudi knjižnicu koja se može koristiti za jednostavno testiranje ciklusa zahtjev-odgovor. O ovoj značajci Nancy raspravit ću u kasnijem postu.

Stvorite projekt ASP.Net Core u Visual Studiju

Prvo, kreirajmo ASP.Net Core projekt u Visual Studiju. Ako u vašem sustavu nije instaliran Visual Studio 2019, možete ga preuzeti ovdje. 

Da biste stvorili novi ASP.Net Core projekt u Visual Studio 2019, slijedite korake dane u nastavku.

  1. Pokrenite Visual Studio IDE.
  2. Kliknite "Stvori novi projekt".
  3. U prozoru "Stvori novi projekt" s popisa predložaka odaberite "ASP.Net Core Web Application".
  4. Kliknite Dalje. 
  5. U prozoru „Konfiguriranje novog projekta“ navedite naziv i mjesto za novi projekt.
  6. Kliknite Stvori.
  7. U prozoru "Stvori novu web-aplikaciju ASP.Net Core" odaberite .Net Core kao vrijeme izvođenja i ASP.Net Core 2.2 (ili noviju) s padajućeg popisa na vrhu.
  8. Kao predložak projekta odaberite “Web Application”.
  9. Obavezno označite potvrdne okvire "Omogući podršku za Docker" i "Konfiguriraj za HTTPS" jer ovdje nećemo koristiti te značajke.
  10. Provjerite je li provjera autentičnosti postavljena na "Bez provjere autentičnosti" jer ni mi nećemo koristiti provjeru autentičnosti.
  11. Kliknite Stvori. 

Sada biste trebali imati novi ASP.Net Core projekt spreman za rad u Visual Studiju. Ovaj projekt koristit ćemo u odjeljcima u nastavku za izradu prilagođene usluge hostiranja.

Instalirajte i konfigurirajte Nancy u ASP.Net Core

Da biste instalirali Nancy, desnom tipkom miša kliknite svoj projekt u prozoru Solution Explorera i odaberite "Upravljanje NuGet paketima ...". Zatim u prozoru NuGet Package Manager potražite Nancy i instalirajte je. Alternativno, Nancy možete instalirati s konzole NuGet Package Manager pomoću sljedeće naredbe.

Instaliraj-paket Nancy

Nakon što je Nancy instalirana, sljedeće što trebate učiniti je konfigurirati Nancy. Da biste to učinili, trebali biste pozvati metodu UseNancy u metodi Konfiguriranje klase Startup, kao što je prikazano dolje.

javna void konfiguracija (aplikacija IApplicationBuilder, IHostingEnvironment env)

 {

     app.UseMvc ();

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

 }

Stvorite svoj prvi Nancy modul u ASP.Net Coreu

Zasada je dobro. Stvorimo sada Nancy modul i napišimo neki kod za njega. Nancy modul je standardna C # klasa koja proširuje NancyModule klasu Nancy okvira.

javni razred HomeModule: NancyModule

{

}

Treba napomenuti da svoj Nancy modul morate proglasiti javnim. Nancyov okvir ne može otkriti modul koji nije označen kao javni.

Stvorite rute u Nancy modulu u ASP.Net Coreu

Nancy modul definira rute u svom konstruktoru. Da biste definirali rutu u Nancyju, trebali biste odrediti HTTP glagol, uzorak, radnju i (po želji) uvjet. Evo primjera koji ilustrira definiciju Nancy rute.

javni razred HomeModule: NancyModule

{

    javni HomeModule ()

    {

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

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

    }

}

U osnovi, Nancy modul mjesto je za definiranje HTTP krajnjih točaka. Sljedeći isječak koda ilustrira Nancy modul koji može obraditi tri različita GET zahtjeva.

javni razred HomeModule: NancyModule

    {

        javni HomeModule ()

        {

            Get ("/", args => "Dobrodošli u Nancy.");

            Get ("/ Test", args => "Test Message.");

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

        }

    }

Nancy nije samo lagana, modularna i brza, već je prilično jednostavna instalacija i konfiguracija. Nancy možete koristiti za pružanje osnovnih HTTP usluga uz minimalan napor. Da biste saznali više o Nancy okviru, možete pogledati dokumentaciju na GitHubu.