The method expression
(*Api).ListHandler
yields a function with the signature
func(*Api, http.ResponseWriter, *http.Request)
To use the method value with the signature
func(http.ResponseWriter, *http.Request)
you need an instance of `*Api` to call its method, so you can't assign the
handler to the route until after you've initialized the `*Api`.
Don't try to initialize the routes in their top-level declaration, create
the Api, then create the routes.
On Friday, March 3, 2017 at 10:33:24 AM UTC-5, Dave wrote:
>
> Hi everyone,
>
> I just got started with GO and decided to attempt building an HTTP API
> package using Gorilla Mux for an existing backend.
> Unfortunately i have gotten stuck on an issue with initializing my routes
> for the past couple of days. I tried searching for a solution online and
> have read a ton of articles/tutorials but have not found exactly what i am
> trying to do.
>
> The code is a little big to just paste and since it uses an external
> import which play.golang does not support i attached it.
>
> My code does not compile returning:
> ./main.go:40: cannot use (*Api).ListHandler (type func(*Api, http.
> ResponseWriter, *http.Request)) as type http.HandlerFunc in field value
>
> Now i sort of understand why it says this because my ListHandler does not
> adhere to the http.HandlerFunc signature as it is part of my Api struct but
> this is where i am stuck.
>
> Any ideas on how to make this work or should i be doing something
> completely different.
>
> (There could be some pointer errors here and there, i am still struggling
> with those so try to overlook them :P and i mocked the backend struct as it
> is in my opinion not relevant to the issue)
>
> - Dave
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.