GO Web Services: Difference between revisions
Jump to navigation
Jump to search
Line 17: | Line 17: | ||
<syntaxhighlight lang="go"> | <syntaxhighlight lang="go"> | ||
// Creating a handler type | |||
type fooHandler struct { | type fooHandler struct { | ||
Message string | Message string | ||
} | } | ||
// Implementing the function for the interface | |||
func (f *fooHandler) ServeHTTP(w http.ResponseWrite, r *http.Request) { | func (f *fooHandler) ServeHTTP(w http.ResponseWrite, r *http.Request) { | ||
w.Write( []byte(f.Message) ) | w.Write( []byte(f.Message) ) |
Revision as of 08:13, 25 August 2021
Handling Requests
These are the two main ways to handle requests
- Handle a handler to handle requests matching a pattern
- HandleFunc a function to handle requests matching a pattern
Handle
Here is the signature for Handle
func Handle(pattern string, handler Handler)
Handler is an interface which has the signature
type Handler interface {
ServeHTTP(ResponseWriter, *Request)
}
So here is how to use this approach. We create a type and implement the interface required.
// Creating a handler type
type fooHandler struct {
Message string
}
// Implementing the function for the interface
func (f *fooHandler) ServeHTTP(w http.ResponseWrite, r *http.Request) {
w.Write( []byte(f.Message) )
}
func main() {
http.Handle("/foo", &fooHandler{Message: "hello Word"})
}