[#1233] added health API endpoint
This commit is contained in:
parent
506bfca8b2
commit
5c899a4cf0
|
@ -100,6 +100,7 @@ func InitApi(app core.App) (*echo.Echo, error) {
|
||||||
bindFileApi(app, api)
|
bindFileApi(app, api)
|
||||||
bindRealtimeApi(app, api)
|
bindRealtimeApi(app, api)
|
||||||
bindLogsApi(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
|
// trigger the custom BeforeServe hook for the created api router
|
||||||
// allowing users to further adjust its options or register new routes
|
// allowing users to further adjust its options or register new routes
|
||||||
|
|
|
@ -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)
|
||||||
|
}
|
|
@ -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)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue