json health.

This commit is contained in:
Tom Alexander 2024-07-14 15:19:41 -04:00
parent 02e288ef31
commit 82a5f145e1
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
3 changed files with 42 additions and 3 deletions

30
Cargo.lock generated
View File

@ -57,6 +57,8 @@ dependencies = [
"pin-project-lite",
"rustversion",
"serde",
"serde_json",
"serde_path_to_error",
"sync_wrapper 1.0.1",
"tokio",
"tower",
@ -439,6 +441,12 @@ version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
[[package]]
name = "ryu"
version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
[[package]]
name = "serde"
version = "1.0.204"
@ -459,6 +467,27 @@ dependencies = [
"syn",
]
[[package]]
name = "serde_json"
version = "1.0.120"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
dependencies = [
"itoa",
"ryu",
"serde",
]
[[package]]
name = "serde_path_to_error"
version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
dependencies = [
"itoa",
"serde",
]
[[package]]
name = "signal-hook-registry"
version = "1.4.2"
@ -621,6 +650,7 @@ name = "webhook_bridge"
version = "0.0.1"
dependencies = [
"axum",
"serde",
"tokio",
]

View File

@ -19,7 +19,8 @@ include = [
[dependencies]
# default form, http1, json, matched-path, original-uri, query, tokio, tower-log, tracing
axum = { version = "0.7.5", default-features = false, features = ["tokio", "http1", "http2"] }
axum = { version = "0.7.5", default-features = false, features = ["tokio", "http1", "http2", "json"] }
serde = { version = "1.0.204", features = ["derive"] }
tokio = { version = "1.38.0", default-features = false, features = ["macros", "process", "rt", "rt-multi-thread"] }
[profile.release-lto]

View File

@ -1,5 +1,8 @@
use axum::http::StatusCode;
use axum::routing::get;
use axum::Json;
use axum::Router;
use serde::Serialize;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
@ -11,6 +14,11 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
async fn health() -> &'static str {
"ok"
async fn health() -> (StatusCode, Json<HealthResponse>) {
(StatusCode::OK, Json(HealthResponse { ok: true }))
}
#[derive(Serialize)]
struct HealthResponse {
ok: bool,
}