Go Academy · Pelajaran

Pustaka Validasi

Validasi struct dengan tag

Pelajaran 3 dari 413 langkah

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 nol
  • email - format email yang valid
  • min / max - batas panjang atau nilai angka
  • gte / lte - perbandingan angka
  • oneof - 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 validate untuk 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
Gratis untuk memulai

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

  1. Apa Itu Tag Struct
  2. Tag JSON
  3. Pustaka Validasi
  4. Penguraian Tag Kustom
← Kembali ke Go Academy