Programiranje

Kako uporabljati Nancy v ASP.Net Core

Nancy je lahek okvir za gradnjo storitev, ki temeljijo na HTTP. Nancy ima raje konvencije kot konfiguracijo in nudi podporo za operacije GET, HEAD, POST, PUT, DELETE in PATCH. Nancy je tudi odprtokodna pod licenco MIT. Ta članek predstavlja razpravo o tem, kako lahko Nancy uporabljamo z aplikacijo ASP.Net Core.

Nancy je spletni okvir in ni odvisen od System.Web ali drugih knjižnic .Net. Najpomembneje pa je, da se ne držite vzorca MVC ali katerega koli drugega vzorca, če uporabljate Nancy. Nancy je le končna točka storitve, ki se lahko odziva na glagole HTTP. Zaradi tega je Nancy dobra izbira za izdelavo spletnih mest, API-jev in spletnih storitev.

Nancy je gostiteljska agnostika. Zaženete ga lahko v IIS, v WCF, kot storitev Windows, vdelano v datoteko .exe ali znotraj samostojne aplikacije. Nancy je zelo enostavno nastaviti in prilagoditi. Druga prednost Nancyja je vgrajena podpora za vbrizgavanje odvisnosti. Nancy ponuja tudi knjižnico, ki jo lahko enostavno uporabite za preizkušanje cikla odziv na zahtevo. O tej značilnosti Nancy bom razpravljal kasneje.

Ustvarite projekt ASP.Net Core v Visual Studio

Najprej ustvarimo projekt ASP.Net Core v Visual Studio. Če v vašem sistemu ni nameščen Visual Studio 2019, ga lahko prenesete tukaj.

Če želite v Visual Studio 2019 ustvariti nov projekt ASP.Net Core, sledite spodnjim korakom.

  1. Zaženite Visual Studio IDE.
  2. Kliknite »Ustvari nov projekt«.
  3. V oknu »Ustvari nov projekt« na seznamu predlog izberite »ASP.Net Core Web Application«.
  4. Kliknite Naprej.
  5. V oknu »Konfiguriranje novega projekta« določite ime in mesto novega projekta.
  6. Kliknite Ustvari.
  7. V oknu »Ustvari novo spletno aplikacijo ASP.Net Core« izberite .Net Core kot izvajalno okolje in ASP.Net Core 2.2 (ali novejšo) s spustnega seznama na vrhu.
  8. Kot predlogo projekta izberite »Spletna aplikacija«.
  9. Prepričajte se, da sta potrditveni polji »Omogoči podporo za Docker« in »Konfiguriranje za HTTPS« odstranjeni, saj tukaj ne bomo uporabljali teh funkcij.
  10. Prepričajte se, da je preverjanje pristnosti nastavljeno na »Brez preverjanja pristnosti«, saj tudi preverjanja pristnosti ne bomo uporabljali.
  11. Kliknite Ustvari.

Zdaj bi morali imeti v Visual Studio pripravljen nov projekt ASP.Net Core. Ta projekt bomo uporabili v spodnjih odsekih za izdelavo naše storitve gostovanja po meri.

Namestite in konfigurirajte Nancy v ASP.Net Core

Če želite namestiti Nancy, z desno miškino tipko kliknite svoj projekt v oknu Raziskovalca rešitev in izberite »Upravljanje paketov NuGet…«. Nato v oknu NuGet Package Manager poiščite Nancy in jo namestite. Nancy lahko namestite tudi iz konzole NuGet Package Manager z naslednjim ukazom.

Namesti paket Nancy

Ko je Nancy nameščena, morate naslednjo stvar konfigurirati. Če želite to narediti, pokličite metodo UseNancy v metodi Konfiguracija razreda zagona, kot je prikazano spodaj.

javna void Configure (aplikacija IApplicationBuilder, IHostingEnvironment env)

 {

app.UseMvc ();

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

 }

Ustvarite svoj prvi Nancy modul v ASP.Net Core

Zaenkrat dobro. Ustvarimo zdaj modul Nancy in mu napišimo nekaj kode. Nancy modul je standardni razred C #, ki razširja razred NancyModule okvira Nancy.

javni razred HomeModule: NancyModule

{

}

Upoštevati je treba, da morate svoj modul Nancy prijaviti kot javen. Nancy framework ne more odkriti modula, ki ni označen kot javni.

Ustvarite poti v Nancy modulu v ASP.Net Core

Nancy modul definira poti v svojem konstruktorju. Če želite določiti pot v Nancyju, morate določiti glagol HTTP, vzorec, dejanje in (neobvezno) stanje. Tu je primer, ki ponazarja definicijo Nancyjeve poti.

javni razred HomeModule: NancyModule

{

javni HomeModule ()

    {

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

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

    }

}

Nancy modul je v bistvu prostor za definiranje končnih točk HTTP. Naslednji delček kode prikazuje Nancyjev modul, ki lahko obravnava tri različne zahteve GET.

javni razred HomeModule: NancyModule

    {

javni HomeModule ()

        {

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

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

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

        }

    }

Nancy ni le lahka, modularna in hitra, temveč je njena namestitev in konfiguracija precej enostavna. Nancy lahko uporabite za zagotavljanje bistvenih storitev HTTP z minimalnim naporom. Če želite izvedeti več o Nancyjevem okviru, si oglejte dokumentacijo o GitHubu.

$config[zx-auto] not found$config[zx-overlay] not found