From 238dde3557e2b7b16544bf154e791a8febabf842 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Wed, 14 Jan 2026 09:52:30 +0100 Subject: [PATCH] Add /health endpoint --- src/views.rs | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/views.rs b/src/views.rs index edf0b9b..5fe317b 100644 --- a/src/views.rs +++ b/src/views.rs @@ -85,6 +85,10 @@ pub async fn get_filename(Path((book_id, file_type)): Path<(u32, String)>) -> im ) } +pub async fn health() -> impl IntoResponse { + (StatusCode::OK, json!({"status": "healthy"}).to_string()) +} + async fn auth(req: Request, next: Next) -> Result { let auth_header = req .headers() @@ -116,12 +120,18 @@ pub async fn get_router() -> Router { .layer(middleware::from_fn(auth)) .layer(prometheus_layer); + let health_router = Router::new().route("/health", get(health)); + let metric_router = Router::new().route("/metrics", get(|| async move { metric_handle.render() })); - Router::new().merge(app_router).merge(metric_router).layer( - TraceLayer::new_for_http() - .make_span_with(trace::DefaultMakeSpan::new().level(Level::INFO)) - .on_response(trace::DefaultOnResponse::new().level(Level::INFO)), - ) + Router::new() + .merge(app_router) + .merge(health_router) + .merge(metric_router) + .layer( + TraceLayer::new_for_http() + .make_span_with(trace::DefaultMakeSpan::new().level(Level::INFO)) + .on_response(trace::DefaultOnResponse::new().level(Level::INFO)), + ) }