Ajouter un healthcheck

Nouvelle dépendance

Dans lib.rs

extern crate time;

Module health

Dans health.rs

Ajouter les imports

use actix_web::{HttpRequest, HttpResponse};

use time;

Déclarer les données retournées

#[derive(Serialize)]
pub struct Healthcheck {
    now: i64,
    version: &'static str,
    status: &'static str,
}

Retourner les données

pub fn healthcheck(_: HttpRequest<super::AppState>) -> HttpResponse {
    HttpResponse::Ok().json(Healthcheck {
        now: time::now_utc().to_timespec().sec,
        version: env!("CARGO_PKG_VERSION"),
        status: "Reviews is healthy",
    })
}

Ajouter la route pour /GET healthcheck

Dans lib.rs

mod health;
    .resource("/health", |r| {
        r.method(http::Method::GET).f(health::healthcheck)
    })

Résultat

curl localhost:9081/health
{
   "status" : "Reviews is healthy",
   "now" : 1524179124,
   "version" : "0.1.0"
}