/
static_example.go
69 lines (53 loc) · 1.54 KB
/
static_example.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package main
import (
"fmt"
"net/http"
"os"
"github.com/InVisionApp/rye"
log "github.com/sirupsen/logrus"
"github.com/cactus/go-statsd-client/statsd"
"github.com/gorilla/mux"
)
func main() {
statsdClient, err := statsd.NewBufferedClient("localhost:12345", "my_service", 1.0, 0)
if err != nil {
log.Fatalf("Unable to instantiate statsd client: %v", err.Error())
}
config := rye.Config{
Statter: statsdClient,
StatRate: 1.0,
}
middlewareHandler := rye.NewMWHandler(config)
pwd, err := os.Getwd()
if err != nil {
log.Fatalf("NewStaticFile: Could not get working directory.")
}
routes := mux.NewRouter().StrictSlash(true)
routes.Handle("/", middlewareHandler.Handle([]rye.Handler{
middlewareFirstHandler,
homeHandler,
})).Methods("GET")
routes.PathPrefix("/dist/").Handler(middlewareHandler.Handle([]rye.Handler{
rye.MiddlewareRouteLogger(),
rye.NewStaticFilesystem(pwd+"/dist/", "/dist/"),
}))
routes.PathPrefix("/ui/").Handler(middlewareHandler.Handle([]rye.Handler{
rye.MiddlewareRouteLogger(),
rye.NewStaticFile(pwd + "/dist/index.html"),
}))
log.Infof("API server listening on %v", "localhost:8181")
srv := &http.Server{
Addr: "localhost:8181",
Handler: routes,
}
srv.ListenAndServe()
}
func middlewareFirstHandler(rw http.ResponseWriter, r *http.Request) *rye.Response {
log.Infof("Middleware handler has fired!")
return nil
}
func homeHandler(rw http.ResponseWriter, r *http.Request) *rye.Response {
log.Infof("Home handler has fired!")
fmt.Fprint(rw, "This is the home handler")
return nil
}