diff --git a/api/server/runner.go b/api/server/runner.go index 2e01301f2..50f154e29 100644 --- a/api/server/runner.go +++ b/api/server/runner.go @@ -94,9 +94,14 @@ func (s *Server) handleRequest(c *gin.Context, enqueue models.Enqueue) { payload = strings.NewReader(reqPayload) } + r, routeExists := c.Get(api.Path) + if !routeExists { + r = "/" + } + reqRoute := &models.Route{ AppName: c.MustGet(api.AppName).(string), - Path: path.Clean(c.MustGet(api.Path).(string)), + Path: path.Clean(r.(string)), } s.FireBeforeDispatch(ctx, reqRoute) diff --git a/api/server/runner_test.go b/api/server/runner_test.go index ac3b56b8b..e1e4ada08 100644 --- a/api/server/runner_test.go +++ b/api/server/runner_test.go @@ -124,6 +124,7 @@ func TestRouteRunnerExecution(t *testing.T) { {Name: "myapp", Config: models.Config{}}, }, []*models.Route{ + {Path: "/", AppName: "myapp", Image: "funcy/hello", Headers: map[string][]string{"X-Function": {"Test"}}}, {Path: "/myroute", AppName: "myapp", Image: "funcy/hello", Headers: map[string][]string{"X-Function": {"Test"}}}, {Path: "/myerror", AppName: "myapp", Image: "funcy/error", Headers: map[string][]string{"X-Function": {"Test"}}}, }, nil, nil, @@ -139,10 +140,12 @@ func TestRouteRunnerExecution(t *testing.T) { expectedCode int expectedHeaders map[string][]string }{ + {"/r/myapp/", ``, "GET", http.StatusOK, map[string][]string{"X-Function": {"Test"}}}, {"/r/myapp/myroute", ``, "GET", http.StatusOK, map[string][]string{"X-Function": {"Test"}}}, {"/r/myapp/myerror", ``, "GET", http.StatusInternalServerError, map[string][]string{"X-Function": {"Test"}}}, // Added same tests again to check if time is reduced by the auth cache + {"/r/myapp/", ``, "GET", http.StatusOK, map[string][]string{"X-Function": {"Test"}}}, {"/r/myapp/myroute", ``, "GET", http.StatusOK, map[string][]string{"X-Function": {"Test"}}}, {"/r/myapp/myerror", ``, "GET", http.StatusInternalServerError, map[string][]string{"X-Function": {"Test"}}}, } { diff --git a/api/server/server.go b/api/server/server.go index 1f7a9fe34..23649126c 100644 --- a/api/server/server.go +++ b/api/server/server.go @@ -328,6 +328,7 @@ func (s *Server) bindHandlers(ctx context.Context) { engine.DELETE("/tasks", s.handleTaskRequest) engine.GET("/tasks", s.handleTaskRequest) + engine.Any("/r/:app", s.handleRunnerRequest) engine.Any("/r/:app/*route", s.handleRunnerRequest) // This final route is used for extensions, see Server.Add