Langsung ke konten utama

ASP.NET Core Middleware

Artikel ini bahas soal middleware di ASP.NET Core pake contoh biar lo gampang paham. 

Apa sih Middleware di ASP.NET Core?
Middleware itu kayak "pengatur lalu lintas" di aplikasi ASP.NET Core lo. Dia nentuin gimana request (permintaan dari user) sama response (jawaban dari server) diolah. Contohnya, middleware dipake buat autentikasi, autorisasi, error handling, routing, sampe logging.

Middleware bakal dijalanin sesuai urutan lo masukin di pipeline, dan biasanya kerjanya gini:

  1. Mutusin mau ngelanjutin request ke middleware lain di pipeline atau enggak.
  2. Bisa ngerjain sesuatu sebelum/selesai middleware lain di pipeline dijalankan.

Oh iya, ASP.NET Core udah sediain banyak middleware bawaan, jadi lo tinggal pake. Tapi kalo perlu yang spesifik buat bisnis lo, bikin aja middleware custom. Yang penting, middleware itu fokusnya harus satu tugas aja alias punya tanggung jawab tunggal.

Cara Konfig Middleware di ASP.NET Core
Middleware diatur di metode Main() yang ada di kelas Program. Contoh nih, kalo bikin proyek ASP.NET Core kosong, otomatis ada kelas Program dengan metode Main. Nah, di situ middleware kayak MapGet sama Run udah otomatis diatur.


Gimana Cara Kerja Middleware?
Middleware itu bisa ngakses request sama response HTTP, jadi:

  1. Bisa bales request langsung.
  2. Atau proses request dulu, baru diterusin ke middleware berikutnya di pipeline.
  3. Bisa juga ubah response sebelum dikirim ke user.

Kadang middleware gak nerusin request ke yang lain (disebut short-circuiting). Contoh, middleware buat static files bisa langsung kasih file statis kayak gambar/CSS kalo ada, tanpa ngelanjutin ke middleware berikutnya.

Urutan Eksekusi Middleware
Middleware dijalanin sesuai urutan lo masukin di pipeline, dari atas ke bawah buat request masuk, dan kebalikannya buat response keluar. Makanya, urutan ini penting banget biar gak bikin aplikasi lo aneh.


Pake Ekstensi Middleware
Di ASP.NET Core, middleware bisa diatur pake beberapa metode ekstensi kayak Run, Map, atau Use. Berikut bedanya:

  1. Run:

    • Terminal alias titik akhir.
    • Setelah ini dijalanin, middleware lain gak bakal dijalanin lagi.
    • Biasanya buat respon langsung dari server.
  2. Map:

    • Buat bikin cabang di pipeline berdasarkan path request.
    • Contoh: bikin rute khusus buat /admin.
  3. Use:

    • Paling fleksibel. Bisa panggil middleware lain di pipeline pake parameter next.

Contoh Middleware Pake Use:

app.Use(async (context, next) =>
{
    await context.Response.WriteAsync("Dari Middleware Pertama");
    await next(); // Lanjut ke middleware berikutnya
});

Middleware Built-in yang Sering Dipake:

  • UseRouting: Buat atur rute endpoint.
  • UseAuthentication: Validasi user masuk.
  • UseAuthorization: Cek izin akses user.
  • UseHttpsRedirection: Paksa semua request lewat HTTPS.
  • UseStaticFiles: Buat ngelayanin file statis langsung dari server.

Komentar

Postingan populer dari blog ini

Membuat Aplikasi Web ASP.NET Core di Visual Studio 2022

Artikel ini membahas langkah-langkah membuat aplikasi ASP.NET Core menggunakan Visual Studio 2022 dan framework .NET 8. 1. Membuka Visual Studio 2022 Buka Visual Studio 2022 dan klik "Create a new project" di layar awal. 2. Memilih Template Proyek Di jendela "Create a new project" , pilih template ASP.NET Core Empty . Template ini memberikan struktur dasar tanpa konfigurasi awal seperti controller, view, atau API. Setelah itu, klik Next . 3. Konfigurasi Proyek Baru Isi informasi proyek seperti berikut: Project Name : Masukkan nama proyek, misalnya FirstCoreWebApplication . Location : Tentukan lokasi folder untuk menyimpan proyek, misalnya D:\Projects . Solution Name : Biasanya sama dengan nama proyek, tetapi bisa diubah jika diperlukan. Centang "Place solution and project in the same directory" jika solusi dan proyek ingin disimpan dalam satu folder. Klik Create untuk melanjutkan. 4. Pengaturan Tambahan Pada jendela "Additional Information...

Remix IDE: Solusi Praktis untuk Menulis dan Deploy Kontrak Pintar

Remix IDE  adalah lingkungan pengembangan terintegrasi berbasis web yang dirancang untuk menulis, mengompilasi, dan menyebarkan smart contract menggunakan bahasa pemrograman  Solidity  di blockchain Ethereum. Alat ini banyak digunakan oleh pengembang blockchain karena kemudahannya dalam menyediakan fitur lengkap untuk pengembangan, pengujian, dan debugging kontrak pintar. Fitur Utama Remix IDE Berbasis Web dan Gratis Tidak perlu diunduh atau diinstal. Anda dapat mengakses Remix langsung melalui browser di  remix.ethereum.org . Karena berbasis web, Remix dapat digunakan di berbagai perangkat selama ada akses internet. Editor Kode Mendukung penulisan kode Solidity dengan penyorotan sintaks, autocompletion, dan validasi kesalahan. Fitur penyorotan kesalahan (error highlighting) memudahkan pengembang untuk menemukan bug pada kode. Compiler Solidity Remix menyediakan compiler bawaan untuk mengonversi kode Solidity menjadi bytecode yang dapat dijalankan di Ethereum Virtual...

Perlu dicatat Built-in Global Variable pada Solidity

Solidity, sebagai bahasa pemrograman untuk membuat smart contract di Ethereum dan blockchain lainnya, menyediakan beberapa variabel global bawaan . Variabel ini memungkinkan akses mudah ke informasi tentang blockchain, transaksi, dan konteks eksekusi. Dengan menggunakan variabel ini, pengembang dapat berinteraksi dengan lingkungan blockchain tanpa perlu menulis banyak kode tambahan. Berikut penjelasan kategori dan variabel global yang umum digunakan: 1. Informasi Blockchain Variabel-variabel ini menyediakan informasi terkait blockchain, seperti blok saat ini dan propertinya. block.number Mengembalikan nomor blok saat ini. Contoh: uint nomorBlokSaatIni = block.number; block.timestamp Waktu pembuatan blok saat ini dalam format detik sejak Unix epoch. Biasanya digunakan untuk mendapatkan waktu saat ini. Contoh: require(block.timestamp >= waktuMulai, "Terlalu awal untuk eksekusi!"); block.difficulty Tingkat kesulitan penambangan pada blok saat ini. Contoh: uin...