start on api
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
parent
2c1baa96bb
commit
7574b334cc
364 changed files with 166263 additions and 1 deletions
12
server/handler.go
Normal file
12
server/handler.go
Normal file
|
@ -0,0 +1,12 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/ehazlett/element/version"
|
||||
)
|
||||
|
||||
func (s *Server) getRequestHandler(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("X-Content-Server", "element "+version.FullVersion())
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
12
server/routes.go
Normal file
12
server/routes.go
Normal file
|
@ -0,0 +1,12 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"github.com/gorilla/mux"
|
||||
)
|
||||
|
||||
func (s *Server) router() (*mux.Router, error) {
|
||||
r := mux.NewRouter()
|
||||
r.HandleFunc("/", s.getRequestHandler).Methods("GET")
|
||||
|
||||
return r, nil
|
||||
}
|
44
server/server.go
Normal file
44
server/server.go
Normal file
|
@ -0,0 +1,44 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"github.com/ehazlett/element/config"
|
||||
"github.com/prometheus/client_golang/prometheus"
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
type Server struct {
|
||||
cfg *config.Config
|
||||
}
|
||||
|
||||
func NewServer(cfg *config.Config) (*Server, error) {
|
||||
return &Server{
|
||||
cfg: cfg,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) Run() error {
|
||||
if s.cfg.EnableMetrics {
|
||||
// start prometheus listener
|
||||
http.Handle("/metrics", prometheus.Handler())
|
||||
go func() {
|
||||
if err := http.ListenAndServe(s.cfg.ListenAddr, nil); err != nil {
|
||||
logrus.Error("unable to start metric listener: %s", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
r, err := s.router()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
http.Handle("/", r)
|
||||
|
||||
if err := http.ListenAndServe(s.cfg.ListenAddr, nil); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue