1

我正在尝试按照 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

谢谢

4

1 回答 1

1

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

例子:

swagger generate server -t docs -f ./docs/swagger.yml --exclude-main -A easypoll --principal models.User
于 2019-09-11T13:09:45.750 回答