File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -12,28 +12,6 @@ import (
1212
1313var Log = config .Cfg ().GetLogger ()
1414
15- // `Use` allows us to stack middleware to process the request
16- // Example taken from https://github.com/gorilla/mux/pull/36#issuecomment-25849172
17- func Use (handler http.HandlerFunc , mid ... func (http.Handler ) http.HandlerFunc ) http.HandlerFunc {
18- for _ , m := range mid {
19- handler = m (handler )
20- }
21- return handler
22- }
23-
24- func RecoverAndLog (handler http.Handler ) http.HandlerFunc {
25- return http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
26- defer func () {
27- r := recover ()
28- if r != nil {
29- jsonhttp .JSONInternalError (w , "An internal server error occurred" , "Please try again in a few seconds" )
30- Log .Error ("Panic occurred in HTTP handler:" , r )
31- }
32- }()
33- handler .ServeHTTP (w , r )
34- })
35- }
36-
3715func GetContext (handler http.Handler ) http.HandlerFunc {
3816 return func (w http.ResponseWriter , r * http.Request ) {
3917 var passItOn = func () {
Original file line number Diff line number Diff line change 1+ package routes
2+
3+ import (
4+ "github.com/exlinc/golang-utils/httpmiddleware"
5+ "github.com/exlskills/demo-go-webservice/config"
6+ "github.com/exlskills/demo-go-webservice/controllers/v1"
7+ "github.com/exlskills/demo-go-webservice/middleware"
8+ "github.com/gorilla/mux"
9+ "net/http"
10+ )
11+
12+ var Log = config .Cfg ().GetLogger ()
13+
14+ func CreateRouter () http.Handler {
15+ router := mux .NewRouter ()
16+ router .StrictSlash (true )
17+
18+ // V1 Routes
19+ v1Router := router .PathPrefix ("/v1" ).Subrouter ()
20+ v1Router .HandleFunc ("/" , v1 .API ).Methods ("GET" )
21+ v1Router .HandleFunc ("/gophers" , httpmiddleware .Use (v1 .GetGophers , middleware .RequireAPIKey )).Methods ("GET" )
22+
23+ return httpmiddleware .Use (router .ServeHTTP , middleware .GetContext , httpmiddleware .RecoverInternalServerError )
24+ }
You can’t perform that action at this time.
0 commit comments