如何使interface类型还原成struct类型

使用Echo框架,想复用API。
于是就用了这样的方式

// Archive/service.go
type GetService struct{
    ID uint `json:"id" form:"id" null:"false"`
    result models.Archive
}
func (service *GetService)Get()*serializer.Response{//数据库操作
}
func (service *GetService)Response() *serializer.Response{
// 响应结果
}
// interface.go
type GetInterface interface {
    Get()*serializer.Response
    Response() *serializer.Response
}
// API.go
func Get(service _interface.GetInterface)echo.HandlerFunc {
    return func(c echo.Context) (err error){

        if err := c.Bind(&service); err == nil {
            if err := service.Get(); err != nil {
                return c.JSON(200, err)
            } else {
                res := service.Response()
                return c.JSON(200, res)
            }
        } else {
            return c.JSON(200, &serializer.Response{
                Status: 40001,
                Msg:    "参数错误",
                Error:  fmt.Sprint(err),
            })
        }
    }
}
// route.go
var ArchiveGet archive.GetService
g.GET("/archive/:id", api.Get(&ArchiveGet))

按照预想是后面也许有什么Novel.GetService等等其他的,到时候直接符合GetInterface方法传入API就好了。

但是发现Echo.Bind()必须要求传入Struct类型。

请问如何解决呢?

谢谢

最佳答案

直接把Bind(&service)中的&去掉就没有这么多事了