Cara menggunakan Nancy di ASP.Net Core

Nancy adalah kerangka kerja ringan untuk membangun layanan berbasis HTTP. Nancy lebih memilih konvensi daripada konfigurasi dan menyediakan dukungan untuk operasi GET, HEAD, POST, PUT, DELETE, dan PATCH. Nancy juga open source di bawah lisensi MIT. Artikel ini menyajikan diskusi tentang bagaimana kita dapat menggunakan Nancy dengan aplikasi ASP.Net Core.

Nancy adalah kerangka kerja web dan tidak memiliki ketergantungan pada System.Web atau pustaka .Net lainnya. Yang terpenting, Anda tidak dibatasi untuk mengikuti pola MVC atau pola lainnya jika Anda menggunakan Nancy. Nancy hanyalah titik akhir layanan yang dapat merespons kata kerja HTTP. Hal ini menjadikan Nancy pilihan yang baik untuk membangun situs web, API, dan layanan web.

Nancy adalah tuan rumah agnostik. Anda dapat menjalankannya di IIS, di WCF, sebagai Layanan Windows, tertanam dalam file .exe, atau di dalam aplikasi yang dihosting sendiri. Nancy cukup mudah diatur dan disesuaikan. Keuntungan lain dari Nancy adalah dukungan bawaannya untuk injeksi ketergantungan. Nancy juga menyediakan pustaka yang dapat digunakan untuk menguji siklus permintaan-respons dengan mudah. Saya akan membahas fitur Nancy ini di posting selanjutnya.

Buat proyek ASP.Net Core di Visual Studio

Pertama, mari buat proyek Inti ASP.Net di Visual Studio. Jika Anda belum menginstal Visual Studio 2019 di sistem Anda, Anda dapat mendownloadnya di sini. 

Untuk membuat proyek ASP.Net Core baru di Visual Studio 2019, ikuti langkah-langkah yang diberikan di bawah ini.

  1. Luncurkan Visual Studio IDE.
  2. Klik "Buat proyek baru".
  3. Di jendela "Buat proyek baru", pilih "Aplikasi Web Inti ASP.Net" dari daftar templat yang ditampilkan.
  4. Klik Next. 
  5. Di jendela "Configure your new project", tentukan nama dan lokasi untuk proyek baru tersebut.
  6. Klik Buat.
  7. Di jendela "Buat Aplikasi Web ASP.Net Core Baru", pilih .Net Core sebagai runtime dan ASP.Net Core 2.2 (atau yang lebih baru) dari daftar drop-down di bagian atas.
  8. Pilih "Aplikasi Web" sebagai template proyek.
  9. Pastikan kotak centang "Aktifkan Dukungan Docker" dan "Konfigurasi untuk HTTPS" tidak dicentang karena kami tidak akan menggunakan fitur tersebut di sini.
  10. Pastikan Autentikasi disetel ke "Tanpa Autentikasi" karena kami juga tidak akan menggunakan autentikasi.
  11. Klik Buat. 

Anda sekarang harus memiliki proyek ASP.Net Core baru yang siap digunakan di Visual Studio. Kami akan menggunakan proyek ini pada bagian di bawah ini untuk membangun layanan yang dihosting khusus.

Instal dan konfigurasikan Nancy di ASP.Net Core

Untuk menginstal Nancy, klik kanan pada proyek Anda di jendela Solution Explorer dan pilih "Kelola paket NuGet…". Kemudian, di jendela NuGet Package Manager, cari Nancy dan instal. Atau, Anda dapat menginstal Nancy dari konsol NuGet Package Manager menggunakan perintah berikut.

Instal-Paket Nancy

Setelah Nancy dipasang, hal berikutnya yang harus Anda lakukan adalah mengonfigurasi Nancy. Untuk melakukan ini, Anda harus memanggil metode UseNancy di metode Konfigurasi kelas Startup seperti yang ditunjukkan di bawah ini.

public void Configure (aplikasi IApplicationBuilder, IHostingEnvironment env)

 {

     app.UseMvc ();

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

 }

Buat modul Nancy pertama Anda di ASP.Net Core

Sejauh ini bagus. Sekarang mari buat modul Nancy dan tulis beberapa kode untuk itu. Modul Nancy adalah kelas C # standar yang memperluas kelas NancyModule dari kerangka kerja Nancy.

kelas publik HomeModule: NancyModule

{

}

Perlu dicatat bahwa Anda harus mendeklarasikan modul Nancy Anda sebagai publik. Framework Nancy tidak dapat menemukan modul yang tidak ditandai sebagai publik.

Buat rute dalam modul Nancy di ASP.Net Core

Modul Nancy mendefinisikan rute dalam konstruktornya. Untuk menentukan rute di Nancy, Anda harus menentukan kata kerja HTTP, pola, tindakan, dan (opsional) kondisi. Berikut adalah contoh yang menggambarkan definisi rute Nancy.

kelas publik HomeModule: NancyModule

{

    publik HomeModule ()

    {

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

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

    }

}

Intinya, modul Nancy adalah tempat untuk menentukan titik akhir HTTP. Potongan kode berikut menggambarkan modul Nancy yang dapat menangani tiga permintaan GET yang berbeda.

kelas publik HomeModule: NancyModule

    {

        publik HomeModule ()

        {

            Dapatkan ("/", args => "Selamat datang di Nancy.");

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

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

        }

    }

Nancy tidak hanya ringan, modular, dan cepat, tetapi menginstal dan mengkonfigurasinya cukup mudah. Anda dapat menggunakan Nancy untuk menyediakan layanan HTTP penting dengan sedikit usaha. Untuk mempelajari lebih lanjut tentang framework Nancy, Anda dapat merujuk ke dokumentasi di GitHub.