Validation
15.1 Jenis Validasi yang Dibutuhkan
Field
Aturan
Pesan Error
15.2 Menambahkan Tag Validator ke DTO
// internal/dto/user_request.go
package dto
import (
"workshop/internal/model"
)
type UserRequest struct {
Name string `json:"name" validate:"required,min=3,max=100"`
Username string `json:"username" validate:"required,min=3,max=50"`
Password string `json:"password" validate:"required,min=10"`
Email string `json:"email" validate:"required,email"`
IsActive bool `json:"is_active"`
}
func (u *UserRequest) Transform(user *model.User) {
user.Name = u.Name
user.Username = u.Username
user.Password = u.Password
user.Email = u.Email
user.IsActive = u.IsActive
}
type UserUpdateRequest struct {
Name string `json:"name" validate:"required,min=3,max=100"`
IsActive bool `json:"is_active"`
}
func (u *UserUpdateRequest) Transform(user *model.User) {
user.Name = u.Name
user.IsActive = u.IsActive
}15.3 Validator Instance (Singleton via Dependency Injection)
15.4 Helper untuk Format Error Validation
15.5 Update Response untuk Mendukung Multiple Error
15.6 Implementasi Validasi di Handler
15.7 Update Routing untuk Inject Validator
15.8 Update Server Main
15.9 Contoh Response Validasi Error
Request (password terlalu pendek):
15.10 Ringkasan Validasi Berdasarkan Layer
Layer
Jenis Validasi
Contoh
Ringkasan Bab 15
Konsep
Implementasi
Last updated