Handler versus handler function
As you may have noticed, we used two different functions before, http.Handle
and http.HandleFunc
, both of which have a path as their first parameter, but which differ in terms of the second parameter. These two functions both ensure that a specific path is handled by a function. http.Handle
, however, expects http.Handler
to handle the path, while http.HandleFunc
expects a function to do the same.
As we’ve seen before, http.Handler
is any struct that has a method with this signature:
ServeHTTP(w http.ResponseWriter, r *http.Request)
So, in both cases, there will always be a function with http.ResponseWriter
and *http.Request
as parameters that will handle the path. When one or the other might be chosen may just be a matter of personal preference in many cases, but it might be important – when creating a complex project, for example – to choose the right method. Doing so will ensure that the structure of the project is optimal...