Pustaka Validasi
Validasi struct dengan tag
Pustaka Validasi adalah pelajaran Go Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.
Mengapa Memvalidasi Struktur
Sebelum menggunakan data masuk (dari formulir atau API), Anda sering perlu memeriksanya: bidang wajib, email valid, dan rentang nilai. Pustaka validasi mengotomatiskan proses ini menggunakan tag struktur.
Tag validate
Pustaka populer seperti go-playground/validator membaca tag validate yang menjelaskan aturan untuk setiap bidang.
Sebuah bidang dapat memiliki validate:"required,email".
Dependensi Eksternal
Pustaka validator adalah paket pihak ketiga, bukan bagian dari pustaka standar. Anda menambahkannya dengan go get github.com/go-playground/validator/v10. Pustaka tersebut tidak dapat dijalankan dalam cuplikan mandiri di sini.
Mendefinisikan Aturan
Tag validate pada setiap bidang mencantumkan aturan yang dipisahkan oleh koma. Aturan umum meliputi: required, email, min, max, dan len.
Contoh Struktur
Struktur yang biasanya divalidasi. (Konseptual; memerlukan paket validator agar dapat dijalankan.)
type SignupForm struct {
Email string "validate:\"required,email\""
Password string "validate:\"required,min=8\""
Age int "validate:\"gte=18,lte=120\""
}Menjalankan Validasi
Anda membuat instans validator dan memanggil Validate.Struct(form). Fungsi tersebut mengembalikan kesalahan jika ada aturan yang gagal, atau nil jika semuanya terpenuhi.
import "github.com/go-playground/validator/v10"
var validate = validator.New()
func check(f SignupForm) error {
return validate.Struct(f)
}Membaca Kesalahan
Saat gagal, kesalahan yang dikembalikan dapat dikonversi ke validator.ValidationErrors, yaitu sebuah slice yang menjelaskan setiap aturan yang dilanggar: bidang mana dan batasan mana yang gagal.
Aturan Bawaan yang Umum
Aturan yang berguna meliputi:
required- tidak boleh bernilai nolemail- format email yang validmin/max- batas panjang atau nilai angkagte/lte- perbandingan angkaoneof- harus merupakan salah satu nilai dalam daftar
Memvalidasi Struktur Bersarang
Validator secara otomatis melakukan rekursi ke dalam struktur bersarang. Bidang yang juga merupakan struktur akan diperiksa berdasarkan aturannya sendiri, sehingga seluruh graf objek dapat divalidasi dalam satu pemanggilan.
Mengapa Menggunakan Pustaka
Menulis validasi secara manual untuk setiap bidang merepotkan dan rentan terhadap kesalahan. Validasi berbasis tag membuat aturan bersifat deklaratif, berada di dekat bidang, dan konsisten di seluruh aplikasi Anda.
Alternatif Manual
Untuk kasus sederhana, Anda dapat melakukan validasi secara manual tanpa pustaka; untuk banyak bidang dan aturan yang kompleks, pustaka lebih unggul. Pendekatan ini dapat dijalankan di mana saja karena hanya menggunakan pustaka standar.
package main
import (
"errors"
"fmt"
"strings"
)
func validateEmail(e string) error {
if !strings.Contains(e, "@") {
return errors.New("invalid email")
}
return nil
}
func main() {
fmt.Println(validateEmail("bad"))
fmt.Println(validateEmail("a@b.com"))
}Pemeriksaan Singkat
Bagaimana pustaka validasi seperti go-playground/validator mengetahui aturan yang harus diterapkan pada setiap bidang?
Ringkasan
Pustaka validasi:
- Membaca tag
validateuntuk menerapkan aturan - Merupakan pihak ketiga (misalnya go-playground/validator), ditambahkan melalui go get
- Mengembalikan kesalahan yang mencantumkan setiap aturan yang gagal
- Kasus sederhana dapat divalidasi secara manual
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 “Pustaka Validasi” gratis?
Ya — teks lengkap “Pustaka Validasi” 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 “Pustaka Validasi”?
Validasi struct dengan tag 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 3 dari 4.
Berapa lama pelajaran “Pustaka Validasi” 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
- Apa Itu Tag Struct
- Tag JSON
- Pustaka Validasi
- Penguraian Tag Kustom