Skip to content

Commit 0f92ba2

Browse files
authored
Add route prefix (#2)
1 parent bb6e9ac commit 0f92ba2

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

hello_world.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"flag"
45
"net/http"
56
"os"
67

@@ -28,16 +29,21 @@ func healthFunc(c *gin.Context) {
2829
c.String(http.StatusOK, "")
2930
}
3031

31-
func setupRouter() *gin.Engine {
32+
func setupRouter(routePrefix string) *gin.Engine {
3233
router := gin.Default()
3334
ginprom := ginprometheus.NewPrometheus("gin")
3435
ginprom.Use(router)
35-
router.GET("/", helloFunc)
3636
router.GET("/health", healthFunc)
37+
38+
rg := router.Group(routePrefix)
39+
rg.GET("/", helloFunc)
3740
return router
3841
}
3942

4043
func main() {
41-
router := setupRouter()
44+
optRoutePrefix := flag.String("route-prefix", "/", "Route prefix")
45+
flag.Parse()
46+
47+
router := setupRouter(*optRoutePrefix)
4248
router.Run()
4349
}

hello_world_test.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
)
1010

1111
func TestDefaultRoute(t *testing.T) {
12-
router := setupRouter()
12+
router := setupRouter("/")
1313

1414
w := httptest.NewRecorder()
1515
req, _ := http.NewRequest("GET", "/", nil)
@@ -20,7 +20,7 @@ func TestDefaultRoute(t *testing.T) {
2020
}
2121

2222
func TestHealthRoute(t *testing.T) {
23-
router := setupRouter()
23+
router := setupRouter("/")
2424

2525
w := httptest.NewRecorder()
2626
req, _ := http.NewRequest("GET", "/health", nil)
@@ -31,11 +31,23 @@ func TestHealthRoute(t *testing.T) {
3131
}
3232

3333
func TestMetricsRoute(t *testing.T) {
34-
router := setupRouter()
34+
router := setupRouter("/")
3535

3636
w := httptest.NewRecorder()
3737
req, _ := http.NewRequest("GET", "/metrics", nil)
3838
router.ServeHTTP(w, req)
3939

4040
assert.Equal(t, 200, w.Code)
4141
}
42+
43+
func TestRoutePrefix(t *testing.T) {
44+
prefix := "/foobar/"
45+
router := setupRouter(prefix)
46+
47+
w := httptest.NewRecorder()
48+
req, _ := http.NewRequest("GET", prefix, nil)
49+
router.ServeHTTP(w, req)
50+
51+
assert.Equal(t, 200, w.Code)
52+
assert.Equal(t, "Hello, World!", w.Body.String())
53+
}

0 commit comments

Comments
 (0)