|  | package goscaffold | 
|  |  | 
|  | import ( | 
|  | "fmt" | 
|  | "net/http" | 
|  | ) | 
|  |  | 
|  | const ( | 
|  | port = 8080 | 
|  | ) | 
|  |  | 
|  | func Example() { | 
|  | // Create a new scaffold that will listen for HTTP on port 8080 | 
|  | scaf := CreateHTTPScaffold() | 
|  | scaf.SetInsecurePort(port) | 
|  |  | 
|  | // Direct the scaffold to catch common signals and trigger a | 
|  | // graceful shutdown. | 
|  | scaf.CatchSignals() | 
|  |  | 
|  | // Set up a URL that may be used by a load balancer to test | 
|  | // if the server is ready to handle requests | 
|  | scaf.SetReadyPath("/ready") | 
|  |  | 
|  | // Set up a URL that may be used by infrastructure to test | 
|  | // if the server is working or if it needs to be restarted or replaced | 
|  | scaf.SetHealthPath("/healthy") | 
|  |  | 
|  | listener := &TestListener{} | 
|  | fmt.Printf("Listening on %d\n", port) | 
|  |  | 
|  | // Listen now. The listener will return when the server is actually | 
|  | // shut down. | 
|  | err := scaf.Listen(listener) | 
|  |  | 
|  | // If we get here, and if we care to know, then the error will tell | 
|  | // us why we were shut down. | 
|  | fmt.Printf("HTTP server shut down: %s\n", err.Error()) | 
|  | } | 
|  |  | 
|  | /* | 
|  | TestListener is an HTTP listener used for the example code. It just returns | 
|  | 200 and "Hello, World!" | 
|  | */ | 
|  | type TestListener struct { | 
|  | } | 
|  |  | 
|  | func (l *TestListener) ServeHTTP(resp http.ResponseWriter, req *http.Request) { | 
|  | resp.Header().Set("Content-Type", "text/plain") | 
|  | resp.WriteHeader(http.StatusOK) | 
|  | resp.Write([]byte("Hello, World!")) | 
|  | } |