NAME

PAGI::Middleware::RequestId - Unique request ID middleware

SYNOPSIS

use PAGI::Middleware::Builder;

my $app = builder {
    enable 'RequestId',
        header       => 'X-Request-ID',
        trust_incoming => 0;
    $my_app;
};

DESCRIPTION

PAGI::Middleware::RequestId generates unique request IDs and adds them to both the scope and response headers. This is useful for request tracing and log correlation.

CONFIGURATION

  • header (default: 'X-Request-ID')

    The header name to use for the request ID.

  • trust_incoming (default: 0)

    If true, use an existing request ID from the incoming request headers instead of generating a new one.

  • generator (default: built-in UUID generator)

    A coderef that generates unique IDs. Receives the scope as argument.

GENERATED IDS

The default ID generator creates IDs in the format:

TTTTTTTT-PPPP-CCCC-RRRR-RRRRRRRRRRRR

Where: - TTTTTTTT: Unix timestamp (hex) - PPPP: Process ID (hex) - CCCC: Counter (hex) - RRRR-RRRRRRRRRRRR: Random bytes (hex)

This ensures uniqueness across processes and restarts.

SEE ALSO

PAGI::Middleware - Base class for middleware