golang回声控制器模型



我在尝试出厂控制器时遇到以下错误:

不能使用&(personController文字((类型的值*personController(作为返回语句中的personController值:方法CreateNewPerson(have func(ctxgithub.com/labstack/echo/v4.Context(错误,需要func(ctxgithub.com/labstack/eecho/v4.Context(

控制器:

package controllers
import (
"net/http"
"github.com/labstack/echo/v4"
)
type personController struct{}
var (
// services
)
type PersonController interface {
CreateNewPerson(ctx echo.Context)
GetPerson(ctx echo.Context)
}
func NewPersonController() PersonController {
return &personController{}
}
func (*personController) CreateNewPerson(ctx echo.Context) error {
return ctx.JSON(http.StatusOK, "Hello")
}
func (*personController) GetPerson(ctx echo.Context) error {
return ctx.JSON(http.StatusOK, "Hello")
}

在我的主要功能中,我得到了这个错误:

func main() {
e := echo.New()
controller := controllers.NewPersonController()
e.POST("/a", controller.CreateNewPerson)
}

无法使用控制器。CreateNewPerson(func(ctx(类型的值回响Contex

您的接口和结构实现不匹配。如果你想让你的接口方法与echo框架所需的相匹配,那么就这样做:

type PersonController interface {
CreateNewPerson(ctx echo.Context) error
GetPerson(ctx echo.Context) error
}

最新更新