Programování

Jak používat Nancy v ASP.Net Core

Nancy je lehký rámec pro vytváření služeb založených na protokolu HTTP. Nancy dává přednost konvencím před konfigurací a poskytuje podporu pro operace GET, HEAD, POST, PUT, DELETE a PATCH. Nancy je také open source pod licencí MIT. Tento článek představuje diskusi o tom, jak můžeme použít Nancy s aplikací ASP.Net Core.

Nancy je webový rámec a nemá žádné závislosti na knihovnách System.Web nebo jiných .Net. A co je nejdůležitější, nejste omezeni dodržováním vzoru MVC nebo jiného vzoru, pokud používáte Nancy. Nancy je jen koncový bod služby, který může reagovat na slovesa HTTP. Díky tomu je Nancy dobrou volbou pro vytváření webů, API a webových služeb.

Nancy je hostitelská agnostika. Můžete jej spustit v IIS, v WCF, jako služba Windows, vložený do souboru .exe nebo uvnitř aplikace s vlastním hostitelem. Nancy je docela snadné nastavit a přizpůsobit. Další výhodou Nancy je integrovaná podpora pro vkládání závislostí. Nancy také poskytuje knihovnu, kterou lze snadno použít k testování cyklu požadavků a odpovědí. O této vlastnosti Nancy se budu bavit v pozdějším příspěvku.

Vytvořte projekt ASP.Net Core v sadě Visual Studio

Nejprve si vytvořme projekt ASP.Net Core v sadě Visual Studio. Pokud ve svém systému nemáte nainstalovanou aplikaci Visual Studio 2019, můžete si ji stáhnout zde.

Chcete-li vytvořit nový projekt ASP.Net Core v Visual Studio 2019, postupujte podle níže uvedených kroků.

  1. Spusťte Visual Studio IDE.
  2. Klikněte na „Vytvořit nový projekt“.
  3. V okně „Vytvořit nový projekt“ vyberte ze zobrazeného seznamu šablon „Webová aplikace ASP.Net Core“.
  4. Klikněte na Další.
  5. V okně „Konfigurace nového projektu“ zadejte název a umístění nového projektu.
  6. Klikněte na Vytvořit.
  7. V okně „Vytvořit novou webovou aplikaci ASP.Net Core“ vyberte jako běhové prostředí .Net Core a z rozevíracího seznamu v horní části ASP.Net Core 2.2 (nebo novější).
  8. Jako šablonu projektu vyberte „Web Application“.
  9. Ujistěte se, že políčka „Povolit podporu Dockeru“ a „Konfigurovat pro HTTPS“ nejsou zaškrtnuta, protože zde tyto funkce nebudeme používat.
  10. Ujistěte se, že je ověřování nastaveno na „Bez ověřování“, protože také nebudeme používat ověřování.
  11. Klikněte na Vytvořit.

Nyní byste měli mít nový projekt ASP.Net Core připravený k použití ve Visual Studiu. Tento projekt použijeme v následujících částech k vytvoření naší vlastní hostované služby.

Nainstalujte a nakonfigurujte Nancy v ASP.Net Core

Chcete-li nainstalovat Nancy, klikněte pravým tlačítkem na svůj projekt v okně Průzkumníka řešení a vyberte „Spravovat balíčky NuGet…“. Potom v okně Správce balíčků NuGet vyhledejte Nancy a nainstalujte ji. Alternativně můžete Nancy nainstalovat z konzoly Správce balíčků NuGet pomocí následujícího příkazu.

Instalační balíček Nancy

Jakmile je Nancy nainstalována, další věcí, kterou byste měli udělat, je nakonfigurovat Nancy. Chcete-li to provést, měli byste zavolat metodu UseNancy v metodě Konfigurace třídy Startup, jak je uvedeno níže.

public void Configure (aplikace IApplicationBuilder, IHostingEnvironment env)

 {

app.UseMvc ();

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

 }

Vytvořte svůj první modul Nancy v ASP.Net Core

Zatím je vše dobré. Nyní vytvořme modul Nancy a napíšeme k němu nějaký kód. Nancy modul je standardní třída C #, která rozšiřuje třídu NancyModule rámce Nancy.

veřejná třída HomeModule: NancyModule

{

}

Je třeba poznamenat, že musíte deklarovat svůj modul Nancy jako veřejný. Rámec Nancy nemůže objevit modul, který není označen jako veřejný.

Vytvářejte trasy v modulu Nancy v ASP.Net Core

Modul Nancy definuje trasy ve svém konstruktoru. Chcete-li definovat trasu v Nancy, měli byste zadat sloveso HTTP, vzor, ​​akci a (volitelně) podmínku. Zde je příklad, který ilustruje definici trasy Nancy.

veřejná třída HomeModule: NancyModule

{

public HomeModule ()

    {

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

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

    }

}

V podstatě je modul Nancy místem pro definování koncových bodů HTTP. Následující fragment kódu ilustruje modul Nancy, který dokáže zpracovat tři různé požadavky GET.

veřejná třída HomeModule: NancyModule

    {

public HomeModule ()

        {

Get ("/", args => "Vítejte v Nancy.");

Get ("/ Test", args => "Testovací zpráva.");

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

        }

    }

Nancy je nejen lehká, modulární a rychlá, ale její instalace a konfigurace je docela snadná. Můžete použít Nancy k poskytování základních služeb HTTP s minimálním úsilím. Další informace o rámci Nancy najdete v dokumentaci na GitHubu.

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