Trait Observer

Source
pub trait Observer {
    // Required methods
    fn on_request_started(&self, data: RequestStartData<'_>);
    fn on_request_ended(&self, data: RequestEndData);
}
Expand description

An Observer is notified before a request is passed for processing, and after processing into a response. Use case could be logging before and after request:

use actix_request_hook::observer::{Observer, RequestEndData, RequestStartData};
struct RequestLogger;

impl Observer for RequestLogger {
    fn on_request_started(&self, data: RequestStartData) {
        println!("[start - {}] {} {}", data.request_id.to_string(), data.method, data.uri);
    }

    fn on_request_ended(&self, data: RequestEndData) {
        let time_elapsed_millis = data.elapsed.as_millis();
        println!("[end - {}] {} {} ended with {} after {}ms", data.request_id.to_string(), data.method, data.uri, data.status, time_elapsed_millis);
    }
}

Required Methods§

Source

fn on_request_started(&self, data: RequestStartData<'_>)

Fired before handler call. See RequestStartData for available arguments.

Source

fn on_request_ended(&self, data: RequestEndData)

Fired after handler call. See RequestEndData for available arguments.

Implementors§