Три подхода. Ручная валидация: if len(req.Name) == 0 — полный контроль, но многословно. Struct tags + validator: используешь пакет go-playground/validator с тегами validate:"required,min=3,max=100". Вызываешь validate.Struct(&req) — возвращает все ошибки разом. Третий — кастомные валидаторы для бизнес-логики. Валидируй как можно раньше — в handler или middleware, до бизнес-слоя. Возвращай понятные ошибки клиенту с указанием поля.