Files
mnote/rust/crates/mnote-web/src/routes/health.rs
T

31 lines
799 B
Rust

use crate::app::AppState;
use crate::context::RequestContext;
use axum::extract::{Extension, State};
use axum::Json;
use serde::Serialize;
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct HealthResponse {
pub ok: bool,
pub service: String,
pub version: String,
pub request_id: String,
pub trace_id: String,
pub runtime: &'static str,
}
pub async fn health(
State(state): State<AppState>,
Extension(context): Extension<RequestContext>,
) -> Json<HealthResponse> {
Json(HealthResponse {
ok: true,
service: state.config().service_name.clone(),
version: state.config().service_version.clone(),
request_id: context.trace.request_id,
trace_id: context.trace.trace_id,
runtime: "axum",
})
}