Add /health endpoint

This commit is contained in:
Maxim Baz 2018-07-30 22:32:42 +02:00
parent 2b72ea66e8
commit 12bc12fa7e
No known key found for this signature in database
GPG Key ID: 011FDC52DA839335
2 changed files with 10 additions and 0 deletions

View File

@ -159,6 +159,12 @@ func (s *Server) JSONHandler(w http.ResponseWriter, r *http.Request) *appError {
return nil
}
func (s *Server) HealthHandler(w http.ResponseWriter, r *http.Request) *appError {
w.Header().Set("Content-Type", jsonMediaType)
w.Write([]byte(`{"status":"OK"}`))
return nil
}
func (s *Server) PortHandler(w http.ResponseWriter, r *http.Request) *appError {
response, err := s.newPortResponse(r)
if err != nil {
@ -247,6 +253,9 @@ func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
func (s *Server) Handler() http.Handler {
r := NewRouter()
// Health
r.Route("GET", "/health", s.HealthHandler)
// JSON
r.Route("GET", "/", s.JSONHandler).Header("Accept", jsonMediaType)
r.Route("GET", "/json", s.JSONHandler)

View File

@ -131,6 +131,7 @@ func TestJSONHandlers(t *testing.T) {
{s.URL + "/port/65356", `{"error":"Invalid port: 65356"}`, 400},
{s.URL + "/port/31337", `{"ip":"127.0.0.1","port":31337,"reachable":true}`, 200},
{s.URL + "/foo", `{"error":"404 page not found"}`, 404},
{s.URL + "/health", `{"status":"OK"}`, 200},
}
for _, tt := range tests {