I'm trying to add authentication to my api following the go-swagger tutorial: https://goswagger.io/tutorial/composed-auth/
But my generated code becomes:
type GetAuthenticatedUserHandlerFunc func(GetAuthenticatedUserParams, interface{}) middleware.Responder
While in the example it is:
type AddOrderHandlerFunc func(AddOrderParams, *models.Principal) middleware.Responder
I can't seem to find how to make the second parameter a reference to model. I have a model called user
defined. If i try to do:
func GetAuthenticatedUserHandlerFunc(params auth.GetAuthenticatedUserParams, user *models.User) middleware.Responder
I get this error:
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
How can i make the generated code use the user model?
My swagger.yml: https://github.com/wunari/easypoll-backend/blob/master/docs/swagger.yml
Thanks
I was missing the -P (--principal) flag when generating with go-swagger cli.
Example:
swagger generate server -t docs -f ./docs/swagger.yml --exclude-main -A easypoll --principal models.User