2016-12-31 45 views
0

我想創建一個通用接口去爲我希望在我的api中使用的模型。如何爲CRUD模型創建通用接口?

type Model interface { 
    Create(interface{}) (int64, error) 
    Update(string, interface{}) (error) 
} 

而且我有一個實現它personModel:

type Person struct { 
    Id int `json:"id"` 
    FirstName string `json:"firstName"` 
} 

type PersonModel struct { 
    Db *sql.DB 
} 

func (model *PersonModel) Create(personStruct person) (int64, error) { 
    // do database related stuff to create the person from the struct 
} 

func (model *PersonModel) Update(id string, personStruct person) (error) { 
    // do database related stuff to update the person model from the struct 
} 

但是,我不能得到這個工作,因爲我得到有關PersonModel怎麼沒有實現Model錯誤接口。

我的主要目標是爲我的應用程序中的所有型號(實施createupdate)提供統一的接口,供控制器使用。我將如何去克服這個問題?

+1

方法創建和更新需要一個空的接口{}作爲參數沒有一個人結構 –

回答

1

你應該嘗試實現這樣的方法,因爲你在FUNC要求創建和更新一個空的接口PARAMS只是:

func (model *PersonModel) Create(v interface{}) (int64, error) { 
    // do database related stuff to create the person from the struct 
} 

func (model *PersonModel) Update(id string, v interface{}) (error) { 
    // do database related stuff to update the person model from the struct 
}