Я предполагаю, что вы сделали (рассматривая пустое значение из полезной нагрузки как ошибку) для проверки http-запроса.Тогда я думаю, что вы можете пойти с ответом @colminator или попробовать использовать стороннюю библиотеку, которая предназначена для этого конкретного случая, например, как https://github.com/go-playground/validator
Пример использования:
type RequestBody struct {
ForkliftID string `json:"forklift_id" validate:"required"`
WarehouseID string `json:"warehouse_id" validate:"required"`
TaskID string `json:"task_id"`
}
// ...
var payload RequestBody
// ...
validate := validator.New()
err := validate.Struct(payload)
if err != nil {
// handle the error
}
поле с тегом validate:"required"
будет проверено во время validate.Struct()
вызова.Существует также множество полезных правил проверки, отличных от required
.
. Для более подробного примера взгляните на пример исходного кода
Другоеальтернативное решение было бы путем выполнения явных проверок в этих полях структуры.Пример:
// ...
if payload.ForkliftID == "" {
err = fmt.Errorf("Forklift ID cannot be empty")
}
if payload.WarehouseID == "" {
err = fmt.Errorf("Warehouse ID cannot be empty")
}