contrib/raftexample/httpapi.go
func serveHttpKVAPI(kv *kvstore, port int, confChangeC chan<- raftpb.ConfChange, errorC <-chan error) {
	srv := http.Server{
		Addr: ":" + strconv.Itoa(port),
		Handler: &httpKVAPI{
			store:       kv,
			confChangeC: confChangeC,
		},
	}
	go func() {
		if err := srv.ListenAndServe(); err != nil {
			log.Fatal(err)
		}
	}()

	// exit when raft goes down
	if err, ok := <-errorC; ok {
		log.Fatal(err)
	}
}
func serveHttpKVAPI(kv *kvstore, port int, confChangeC chan<- raftpb.ConfChange, errorC <-chan error) {
	srv := http.Server{
		Addr: ":" + strconv.Itoa(port),
		Handler: &httpKVAPI{
			store:       kv,
			confChangeC: confChangeC,
		},
	}
	go func() {
		if err := srv.ListenAndServe(); err != nil {
			log.Fatal(err)
		}
	}()

	// exit when raft goes down
	if err, ok := <-errorC; ok {
		log.Fatal(err)
	}
}
func serveHttpKVAPI ( kv * kvstore , port int , confChangeC chan <- raftpb . ConfChange , errorC <- chan error ) { srv := http . Server { Addr : " " + strconv . Itoa ( port ) , Handler : & httpKVAPI { store : kv , confChangeC : confChangeC , } , } go func ( ) { if err := srv . ListenAndServe ( ) ; err != nil { log . Fatal ( err ) } } ( ) // exit when raft goes down if err , ok := <- errorC ; ok { log . Fatal ( err ) } }
// serveHttpKVAPI starts a key-value server with a GET/PUT API and listens.
serveHttpKVAPI starts a key - value server with a GET / PUT API and listens .