Source Events ↗

request.completed

HTTP request finished.

When
After a response status is available.
Payload
JSON: { request_id, client_ip, method, path, query, status, duration_ms }.
Cancelable
No

Fires for core routes and plugin routes.

Use cases

  • Latency metrics
  • Audit logs

Example

Registration and handler

Register

hook!(host, PluginEvent::RequestCompleted, on_request_completed);

Handler

extern "C" fn on_event(ctx: *const EventContext) -> HookResult {
    let ctx = unsafe { &*ctx };
    let payload = unsafe { std::slice::from_raw_parts(ctx.payload_ptr, ctx.payload_len) };
    let _json = std::str::from_utf8(payload).unwrap_or_default();
    HookResult::r#continue()
}

← All lifecycle events