Membaca File Konfigurasi
Muat YAML, JSON, TOML
Membaca File Konfigurasi adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Go Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Go Academy mencakup 4 pelajaran total.
Konfigurasi Berada di Luar Kode
Menulis nilai seperti porta, nama host, dan batas waktu secara langsung ke dalam program Go itu rapuh. Viper adalah pustaka konfigurasi standar de facto untuk Go: pustaka ini membaca pengaturan dari berkas, variabel lingkungan, opsi, dan penyimpanan jarak jauh.
Dalam pelajaran ini, Anda memuat konfigurasi dari berkas di disk.
Format Apa Saja yang Dibaca Viper
Viper mendukung banyak format secara langsung:
- YAML (
.yaml/.yml) - JSON (
.json) - TOML (
.toml) - berkas properti HCL, INI, dan Java
Anda memilih format dengan SetConfigType, atau Viper menyimpulkannya dari ekstensi berkas.
Memasang dan Mengimpor Viper
Tambahkan Viper ke modul dan impor:
go get github.com/spf13/viperimport "github.com/spf13/viper"
Karena Viper adalah dependensi eksternal, cuplikan yang mengimpornya tidak dapat dijalankan dalam pemutar pelajaran ini. Kami menyimulasikan perilakunya dengan pustaka standar jika memungkinkan.
import "github.com/spf13/viper"Menentukan Tempat Pencarian Viper
Konfigurasikan nama berkas, jenis, dan jalur pencarian sebelum membaca:
viper.SetConfigName("config")menetapkan nama dasar tanpa ekstensiviper.SetConfigType("yaml")menetapkan formatviper.AddConfigPath(".")menambahkan direktori ke daftar pencarian
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.AddConfigPath("/etc/myapp")Membaca Berkas
Panggil viper.ReadInConfig() untuk memuat berkas. Fungsi ini mengembalikan galat yang harus Anda periksa:
- Berkas yang tidak ada mengembalikan
ConfigFileNotFoundError - Berkas yang formatnya tidak valid mengembalikan galat penguraian
if err := viper.ReadInConfig(); err != nil {
log.Fatalf("failed to read config: %v", err)
}Contoh Konfigurasi YAML
Bayangkan config.yaml seperti ini. Viper meratakan kunci bertingkat dengan menggunakan titik, sehingga porta menjadi server.port.
server:
port: 8080
host: "localhost"
debug: trueMendapatkan Nilai Bertipe
Viper menyediakan pengambil bertipe sehingga Anda tidak perlu melakukan konversi secara manual:
viper.GetInt("server.port")viper.GetString("server.host")viper.GetBool("debug")
port := viper.GetInt("server.port")
host := viper.GetString("server.host")
debug := viper.GetBool("debug")
fmt.Println(host, port, debug)JSON Bekerja dengan Cara yang Sama
Beralih ke JSON hanya mengubah isi berkas dan jenis konfigurasi. Jalur kunci dan pengambil yang sama tetap berlaku. Portabilitas inilah yang membuat Viper populer: kode Anda tidak perlu mengetahui format yang dipilih tim operasi.
{
"server": { "port": 8080, "host": "localhost" },
"debug": true
}TOML Juga Didukung
TOML umum digunakan dalam ekosistem Go (banyak alat baris perintah menggunakannya). Kunci bertingkat yang sama dipetakan ke jalur bertitik.
[server]
port = 8080
host = "localhost"
debug = trueMengurai JSON dengan Pustaka Standar
Untuk melihat gagasan ini benar-benar bekerja, berikut cara Go biasa mengurai konfigurasi JSON tanpa Viper, hanya dengan menggunakan encoding/json ke dalam peta (Viper sendiri bekerja di atas peta umum di balik layar).
package main
import (
"encoding/json"
"fmt"
)
func main() {
raw := "{\"port\":8080,\"host\":\"localhost\"}"
var c map[string]any
if err := json.Unmarshal([]byte(raw), &c); err != nil {
panic(err)
}
fmt.Printf("%v:%v\n", c["host"], c["port"])
}Dapat Dijalankan: Membaca ke dalam Peta
Program mandiri ini mengurai konfigurasi JSON ke dalam peta umum dan mencetak nilai-nilainya, meniru cara kerja Viper di balik layar untuk JSON.
package main
import (
"encoding/json"
"fmt"
)
func main() {
raw := "{\"port\":8080,\"host\":\"localhost\"}"
var m map[string]any
json.Unmarshal([]byte(raw), &m)
fmt.Println("host:", m["host"])
fmt.Println("port:", m["port"])
}Pemeriksaan Singkat
Uji pemahaman Anda tentang cara membaca berkas konfigurasi dengan Viper.
Ringkasan
Anda telah mempelajari cara Viper membaca berkas konfigurasi:
- Viper mendukung YAML, JSON, dan TOML secara transparan
- Konfigurasikan dengan
SetConfigName,SetConfigType, danAddConfigPath ReadInConfig()memuat berkas dan mengembalikan galat- Pengambil bertipe seperti
GetIntdanGetStringmembaca nilai berdasarkan kunci bertitik
Berikutnya: menimpa konfigurasi dengan variabel lingkungan.
Belajar Go dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 51
- Pelajaran
- 203
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Membaca File Konfigurasi” gratis?
Ya — teks lengkap “Membaca File Konfigurasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Go Academy, upgrade ke CoddyKit PRO. Kursus Go Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Membaca File Konfigurasi”?
Muat YAML, JSON, TOML Kamu berlatih Go Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Go Academy?
Tidak diperlukan pengalaman sebelumnya. Go Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Membaca File Konfigurasi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Go Academy ini?
Ya. Setiap pelajaran Go Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membaca File Konfigurasi
- Variabel Lingkungan
- Nilai Default dan Pemantauan
- Binding ke Struct