Я пытаюсь реализовать абстракцию golang Я использую gorm
библиотеку ОРМ и gin
рамкиGolang абстракции в обработчике, чтобы избежать дублирования кода
Базовый класс
type Base struct {
Context *gin.Context // Passing gin request
}
func (b *Base) Add() {
err := b.Context.BindJSON(b)
if err != nil {
// handling error here
}
gorm.db.Create(b) // Here I am adding base data to database
}
Детский класс
type Shopper struct {
Base // Embedding Base struct
Name string,
Address string,
ContactNo int
}
Handler
func handler (c *gin.Context) {
s := new(Shopper)
s.Context = c
s.Add() // Here I am expecting Add() method should bind JSON to shopper struct
// entry to database using gorm
}
Add()
метод не принимает какого-либо имущества, которое shopper
структура имеет.
Здесь я просто хочу, чтобы избежать code duplication
в каждом handler
который просто берет из JSON тела запроса и добавить к соответствующему database
с помощью gorm
спасибо kostix –