Я пытаюсь найти достойный подход к работе с несколькими вариантами использования структуры. Позвольте мне объяснить сценарий.
У меня есть структура, которая представляет Модель в gorm. В текущей реализации у меня есть привязка проверки к этой структуре, поэтому, когда запрос достигает конечной точки, я проверяю ее по структуре модели. Это прекрасно работает в большинстве случаев. Но есть некоторые случаи, когда я хочу иметь больше контроля над запросом и ответом.
Это возможно путем введения нескольких дополнительных внутренних структур, которые будут анализировать запрос и ответ. И я могу отделить валидацию от модели в структуру запроса, специфицирующую c struct. Я пытаюсь выяснить, как лучше всего использовать эти шаблоны. Я уверен, что многие выглядели бы в подобной ситуации.
// Transaction holds the transaction details.
type Transaction struct {
Program Program
ProgramID uuid.UUID
Type string
Value float64
Reference string
}
// TransactionRequest for the endpoint.
type TransactionRequest struct {
ProgramKey string `json:"program_key" validator:"required"`
Type string `json:"type" validator:"required,oneof=credit debit"`
Value float64 `json:"value" validator:"required,numeric"`
Reference string `json:"reference" validator:"required"`
}
Обновление:
Мне удалось найти баланс, введя дополнительные теги для запросов на обновление, я писал о том, как я его достиг здесь