@@ -13,6 +13,7 @@ import (
13
13
{ {/mux} }
14
14
{ {#chi} }
15
15
"github.com/go-chi/chi/v5"
16
+ "github.com/go-chi/chi/v5/middleware"
16
17
{ {#featureCORS} }
17
18
"github.com/go-chi/cors"
18
19
{ {/featureCORS} }
@@ -45,14 +46,25 @@ type Router interface {
45
46
const errMsgRequiredMissing = "required parameter is missing"
46
47
47
48
// NewRouter creates a new router for any number of api routers
49
+ func NewRouter(routers ...Router) { {#routers} }{ {#mux} }*mux.Router{ {/mux} }{ {#chi} }chi.Router{ {/chi} }{ {/routers} } {
48
50
{{#routers} }
49
51
{ {#mux} }
50
- func NewRouter(routers ...Router) *mux.Router {
51
52
router := mux.NewRouter().StrictSlash(true)
53
+ { {/mux} }
54
+ { {#chi} }
55
+ router := chi.NewRouter()
56
+ router.Use(middleware.Logger)
57
+ { {#featureCORS} }
58
+ router.Use(cors.Handler(cors.Options{ } ))
59
+ { {/featureCORS} }
60
+ { {/chi} }
61
+ { {/routers} }
52
62
for _, api := range routers {
53
63
for _, route := range api.Routes() {
54
64
var handler http.Handler
55
65
handler = route.HandlerFunc
66
+ {{#routers} }
67
+ { {#mux} }
56
68
handler = Logger(handler, route.Name)
57
69
{ {#featureCORS} }
58
70
handler = handlers.CORS()(handler)
@@ -63,26 +75,13 @@ func NewRouter(routers ...Router) *mux.Router {
63
75
Path(route.Pattern).
64
76
Name(route.Name).
65
77
Handler(handler)
66
- }
67
- }
68
78
{ {/mux} }
69
79
{ {#chi} }
70
- func NewRouter(routers ...Router) chi.Router {
71
- router := chi.NewRouter()
72
- {{#featureCORS} }
73
- r.Use(cors.Handler(cors.Options{ } ))
74
- { {/featureCORS} }
75
- for _, api := range routers {
76
- for _, route := range api.Routes() {
77
- var handler http.Handler
78
- handler = route.HandlerFunc
79
- handler = Logger(handler, route.Name)
80
-
81
80
router.Method(route.Method, route.Pattern, handler)
82
- }
83
- }
84
81
{ {/chi} }
85
82
{ {/routers} }
83
+ }
84
+ }
86
85
87
86
return router
88
87
}
0 commit comments