Langsung ke konten utama

ASP.NET Core AppSettings.json File

Artikel ini bakal ngejelasin pentingnya file AppSettings.json di ASP.NET Core, lengkap sama contohnya. 

Sumber Konfigurasi di ASP.NET Core

Kalo lo pernah ngoding pake ASP.NET versi lama, pasti tau dong sama file web.config yang biasa dipake buat nyimpen settingan kayak connection string database, API key, detail logging, sama variabel global.

Nah, di ASP.NET Core, file web.config udah nggak ada lagi. Sebagai gantinya, ada berbagai sumber konfigurasi yang lebih fleksibel buat nge-manage environment. Beberapa sumber konfigurasi ini adalah:

  • appsettings.json: File JSON buat nyimpen settingan aplikasi secara umum.
  • appsettings.{Environment}.json: File JSON spesifik berdasarkan environment (contoh: Development, Production, Staging) yang override settingan di file utama.
  • Environment Variables: Nilai yang didefinisiin di environment tempat aplikasi running, cocok buat deployment di container.
  • User Secrets: Buat nyimpen data sensitif (contoh: API key, password) selama development tanpa masuk ke source code.
  • Command-line Arguments: Parameter yang dikasih pas aplikasi di-run, dan bisa override semua settingan lain.

Apa Itu AppSettings.json?

File appsettings.json adalah file JSON di ASP.NET Core buat nyimpen settingan aplikasi yang gampang diubah tanpa perlu recompile. Settingan ini bisa mencakup:

  • Connection string database
  • Konfigurasi logging
  • API key
  • Settingan autentikasi
  • URL API eksternal
  • Variabel global aplikasi

ASP.NET Core juga support file konfigurasi spesifik environment. Contohnya, file appsettings.Development.json bisa override settingan di appsettings.json pas aplikasi lagi running di environment Development.

Struktur Dasar appsettings.json

Ini contoh isi default file appsettings.json yang biasanya otomatis dibuat kalo lo bikin project ASP.NET Core pake template di Visual Studio:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "MyCustomKey": "MyCustomKey Value coming from appsettings.json"
}

Penjelasan:

  • Logging: Buat konfigurasi log aplikasi.
    • LogLevel: Nentuin level log minimum.
      • Default: Log level default (contoh: Information).
      • Microsoft.AspNetCore: Level log khusus buat komponen Microsoft.AspNetCore.
  • AllowedHosts: Nentuin host mana aja yang diizinin buat akses aplikasi. Simbol * artinya semua host diizinin.
  • MyCustomKey: Contoh key custom yang kita bikin sendiri.

Cara Akses Konfigurasi di AppSettings.json

Buat ngakses setting di file appsettings.json, kita bisa pake IConfiguration atau ConfigurationManager. Contohnya, gini cara ngambil nilai MyCustomKey di Main method kelas Program:

string myCustomKeyValue = builder.Configuration.GetValue<string>("MyCustomKey", "DefaultValue");

Urutan Eksekusi Konfigurasi di ASP.NET Core

Kalo ada key yang sama di berbagai sumber konfigurasi, yang terakhir dibaca bakal override yang sebelumnya. Urutan default:

  1. appsettings.json
  2. appsettings.{Environment}.json
  3. User Secrets
  4. Environment Variables
  5. Command-line Arguments

Contoh Real-Time Penggunaan AppSettings.json

Connection String Database

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"
  }
}

Konfigurasi Logging

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  }
}

API Eksternal

{
  "ExternalService": {
    "BaseUrl": "https://api.example.com/",
    "ApiKey": "Your-Api-Key-Here"
  }
}

Settingan Custom Aplikasi

{
  "ApplicationSettings": {
    "PageSize": 20,
    "SupportEmail": "[email protected]"
  }
}

Autentikasi

{
  "Authentication": {
    "Jwt": {
      "Key": "Your-Secret-Key",
      "Issuer": "YourIssuer",
      "Audience": "YourAudience"
    }
  }
}

Semoga artikel ini ngebantu lo buat ngerti pentingnya file appsettings.json!


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...