This is a simple library to generate both unique request and response IDs for tracing purposes.
composer require xepozz/request-idAdd the middleware to your application configuration, e.g. config/web/params.php:
use Xepozz\RequestID\SetRequestIDMiddleware;
return [
'middlewares' => [
SetRequestIDMiddleware::class,
// ErrorCatcher::class,
// SentryMiddleware::class,
// Router::class,
// ...
],
];Note: The middleware must be added before the
ErrorCatchermiddleware if you want to see the response ID in the error page.
You can get the request ID with the Xepozz\RequestID\RequestIDProviderInterface interface:
use Xepozz\RequestID\RequestIDProviderInterface;
class HttpClient
{
public function __construct(
private RequestIDProviderInterface $requestIDProvider,
) {
}
public function sendRequest(): void
{
$requestID = $this->requestIDProvider->get();
// ...
}
}If you want not to use the Request ID from the incoming request, you can disable this behavior by specifying the useIncomingRequestID parameter in the application configuration:
return [
'xepozz/request-id' => [
'useIncomingRequestID' => false,
],
];Note: By default, the library always uses the header to get the request ID from the incoming request.
By default, the library uses the X-Request-ID header to store the request ID. Same header name is used to set response ID.
You can change the header name by specifying the headerName parameter in the application configuration:
return [
'xepozz/request-id' => [
'headerName' => 'X-Request-ID',
],
];By default, the library sets the header to the response at the end of a request.
You can disable this behavior by specifying the setResponseHeader parameter in the application configuration:
return [
'xepozz/request-id' => [
'setResponseHeader' => false,
],
];By default, the library uses the Xepozz\RequestID\UuidGenerator generator.
You can change the strategy by specifying the implementation of the Xepozz\RequestID\RequestIDGeneratorInterface
interface in the container:
use Xepozz\RequestID\RequestIDGeneratorInterface;
use Xepozz\RequestID\UuidGenerator;
return [
RequestIDGeneratorInterface::class => UuidGenerator::class,
];- Unique ID - Allows you to track the unique user in the application.
- AB - A simple library to enable A/B testing based on a set of rules.
- Feature Flag - A simple library to enable/disable features based on a set of rules.
- Shortcut - Sets of helper functions for rapid development of Yii 3 applications.