Objective
Implement comprehensive input validation for all API endpoints.
Implementation
import "github.com/go-playground/validator/v10"
type CreateSessionRequest struct {
TemplateID string `json:"template_id" validate:"required,uuid"`
Name string `json:"name" validate:"required,min=3,max=100"`
Timeout int `json:"timeout" validate:"min=60,max=86400"`
}
func ValidateRequest(req interface{}) error {
validate := validator.New()
return validate.Struct(req)
}
Validation Rules
- UUID format for IDs
- String length limits
- Numeric ranges
- Email format
- URL format
- Enum values
Acceptance Criteria
Files
- All
api/internal/handlers/*.go
api/internal/validator/validator.go (NEW)
Objective
Implement comprehensive input validation for all API endpoints.
Implementation
Validation Rules
Acceptance Criteria
Files
api/internal/handlers/*.goapi/internal/validator/validator.go(NEW)