Browse Source

feat(server): add HEAD for v1/watch

Yicheng Qin 11 years ago
parent
commit
76ac1da7ea
2 changed files with 5 additions and 3 deletions
  1. 1 1
      server/server.go
  2. 4 2
      server/v1/watch_key_handler.go

+ 1 - 1
server/server.go

@@ -103,7 +103,7 @@ func (s *Server) installV1(r *mux.Router) {
 	s.handleFuncV1(r, "/v1/keys/{key:.*}", v1.GetKeyHandler).Methods("GET", "HEAD")
 	s.handleFuncV1(r, "/v1/keys/{key:.*}", v1.SetKeyHandler).Methods("POST", "PUT")
 	s.handleFuncV1(r, "/v1/keys/{key:.*}", v1.DeleteKeyHandler).Methods("DELETE")
-	s.handleFuncV1(r, "/v1/watch/{key:.*}", v1.WatchKeyHandler).Methods("GET", "POST")
+	s.handleFuncV1(r, "/v1/watch/{key:.*}", v1.WatchKeyHandler).Methods("GET", "HEAD", "POST")
 	s.handleFunc(r, "/v1/leader", s.GetLeaderHandler).Methods("GET", "HEAD")
 	s.handleFunc(r, "/v1/machines", s.GetPeersHandler).Methods("GET", "HEAD")
 	s.handleFunc(r, "/v1/peers", s.GetPeersHandler).Methods("GET", "HEAD")

+ 4 - 2
server/v1/watch_key_handler.go

@@ -32,9 +32,11 @@ func WatchKeyHandler(w http.ResponseWriter, req *http.Request, s Server) error {
 	event := <-watcher.EventChan
 
 	// Convert event to a response and write to client.
-	b, _ := json.Marshal(event.Response(s.Store().Index()))
 	w.WriteHeader(http.StatusOK)
+	if req.Method == "HEAD" {
+		return nil
+	}
+	b, _ := json.Marshal(event.Response(s.Store().Index()))
 	w.Write(b)
-
 	return nil
 }