Skip to content

Commit

Permalink
[pocketbase#1233] added health API endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
MarvinJWendt authored Dec 11, 2022
1 parent 506bfca commit 5c899a4
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 0 deletions.
1 change: 1 addition & 0 deletions apis/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ func InitApi(app core.App) (*echo.Echo, error) {
bindFileApi(app, api)
bindRealtimeApi(app, api)
bindLogsApi(app, api)
bindHealthApi(app, api) // health check should always be initialized after everything else is done

// trigger the custom BeforeServe hook for the created api router
// allowing users to further adjust its options or register new routes
Expand Down
28 changes: 28 additions & 0 deletions apis/health.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package apis

import (
"github.com/labstack/echo/v5"
"github.com/pocketbase/pocketbase/core"
"net/http"
)

// bindHealthApi registers the health api endpoint.
func bindHealthApi(app core.App, rg *echo.Group) {
api := healthApi{app: app}

subGroup := rg.Group("/health")
subGroup.GET("", api.healthCheck)
}

type healthApi struct {
app core.App
}

// healthCheck returns a 200 OK response if the server is healthy.
func (api *healthApi) healthCheck(c echo.Context) error {
payload := map[string]any{
"code": http.StatusOK,
"message": "API is healthy.",
}
return c.JSON(http.StatusOK, payload)
}
25 changes: 25 additions & 0 deletions apis/health_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package apis_test

import (
"github.com/pocketbase/pocketbase/tests"
"net/http"
"testing"
)

func TestHealthAPI(t *testing.T) {
scenarios := []tests.ApiScenario{
{
Name: "health status returns 200",
Method: http.MethodGet,
Url: "/api/health",
ExpectedStatus: 200,
ExpectedContent: []string{
`"code":200`,
},
},
}

for _, scenario := range scenarios {
scenario.Test(t)
}
}

0 comments on commit 5c899a4

Please sign in to comment.