OperationhandlerFunc 第二个参数变为 interface{} 而不是 *models.Model

OperationhandlerFunc second parameter becomes interface{} instead of *models.Model

我正尝试按照 go-swagger 教程向我的 api 添加身份验证:https://goswagger.io/tutorial/composed-auth/

但是我生成的代码变成了:

type GetAuthenticatedUserHandlerFunc func(GetAuthenticatedUserParams, interface{}) middleware.Responder

而在示例中是:

type AddOrderHandlerFunc func(AddOrderParams, *models.Principal) middleware.Responder

我似乎找不到如何使第二个参数成为对模型的引用。我定义了一个名为 user 的模型。如果我尝试这样做:

func GetAuthenticatedUserHandlerFunc(params auth.GetAuthenticatedUserParams, user *models.User) middleware.Responder

我收到这个错误:

cannot convert handlers.GetAuthenticatedUserHandlerFunc (type func(auth.GetAuthenticatedUserParams, *models.User) "github.com/wunari/easypoll-backend/vendor/github.com/go-openapi/runtime/middleware".Responder) to type auth.GetAuthenticatedUserHandlerFunc

如何让生成的代码使用用户模型?

我的swagger.yml:https://github.com/wunari/easypoll-backend/blob/master/docs/swagger.yml

谢谢

我在使用 go-swagger cli 生成时缺少 -P (--principal) 标志。

示例:

swagger generate server -t docs -f ./docs/swagger.yml --exclude-main -A easypoll --principal models.User