Trait jsonrpsee_core::middleware::HttpMiddleware
source · pub trait HttpMiddleware: Send + Sync + Clone + 'static {
type Instant: Debug + Send + Sync + Copy;
fn on_request(
&self,
remote_addr: SocketAddr,
headers: &Headers
) -> Self::Instant;
fn on_call(&self, method_name: &str, params: Params<'_>, kind: MethodKind);
fn on_result(
&self,
method_name: &str,
success: bool,
started_at: Self::Instant
);
fn on_response(&self, result: &str, _started_at: Self::Instant);
}
Expand description
Defines a middleware specifically for HTTP requests with callbacks during the RPC request life-cycle. The primary use case for this is to collect timings for a larger metrics collection solution.
See HttpServerBuilder::set_middleware
method
for examples.
Required Associated Types§
Required Methods§
sourcefn on_request(&self, remote_addr: SocketAddr, headers: &Headers) -> Self::Instant
fn on_request(&self, remote_addr: SocketAddr, headers: &Headers) -> Self::Instant
Called when a new JSON-RPC request comes to the server.
sourcefn on_call(&self, method_name: &str, params: Params<'_>, kind: MethodKind)
fn on_call(&self, method_name: &str, params: Params<'_>, kind: MethodKind)
Called on each JSON-RPC method call, batch requests will trigger on_call
multiple times.
sourcefn on_result(&self, method_name: &str, success: bool, started_at: Self::Instant)
fn on_result(&self, method_name: &str, success: bool, started_at: Self::Instant)
Called on each JSON-RPC method completion, batch requests will trigger on_result
multiple times.
sourcefn on_response(&self, result: &str, _started_at: Self::Instant)
fn on_response(&self, result: &str, _started_at: Self::Instant)
Called once the JSON-RPC request is finished and response is sent to the output buffer.