Add functionality to requests and responses in the PHP SDK.
You can add middleware when creating the PHP SDK client. When adding multiple middleware, use an array of middlewares.
MiddlewareFactory
The scope of this Factory pattern is to handle and customize the available middleware. Use the methods contained in this class to create an array of middlewares.
Default middleware
createDefaultMiddlewares creates an array with default values of OAuth Handler, Authentication, Logger, Retry and Correlation ID.
$authConfig = new ClientCredentialsConfig(new ClientCredentials($clientId, $clientSecret), [
'handler' => $authHandler,
]);
$oauthHandler = OAuthHandlerFactory::ofAuthConfig($authConfig),
$logger = new Logger('client', [new StreamHandler('./logs/requests.log')]);
$maxRetries = 3;
$correlationIdProvider = new DefaultCorrelationIdProvider();
$middlewares = MiddlewareFactory::createDefaultMiddlewares(
$oauthHandler,
$logger,
$maxRetries,
$correlationIdProvider
);
CorrelationIdMiddleware
createCorrelationIdMiddleware creates a middleware that adds a correlation ID to the headers of HTTP requests.
$correlationIdProvider = new DefaultCorrelationIdProvider();
$correlationIdMiddleware = MiddlewareFactory::createCorrelationIdMiddleware(
$correlationIdProvider
);
RetryNAMiddleware
createRetryNAMiddleware creates middleware that retries HTTP requests under certain conditions.
$maxRetries = 3;
$retryMiddleware = MiddlewareFactory::createRetryNAMiddleware($maxRetries);
OAuthHandlerMiddleware
createMiddlewareForOAuthHandler creates a middleware to handle OAuth 2.0 authentication, ensuring that necessary OAuth credentials are included.
$tokenProvider = new YourTokenProvider();
$oauthHandler = OAuthHandlerFactory::ofProvider($tokenProvider),
$oauthMiddleware = MiddlewareFactory::createMiddlewareForOAuthHandler($oauthHandler);
LoggerMiddleware
createLoggerMiddleware creates a middleware for logging HTTP requests and responses.
$logger = new Logger('auth');
$logger->pushHandler(new StreamHandler('./logs/requests.log', Logger::DEBUG));
$loggerMiddleware = MiddlewareFactory::createLoggerMiddleware($logger);
ReauthenticateMiddleware
createReauthenticateMiddleware creates a middleware that automatically reauthenticates HTTP requests in the event of an invalid token error (HTTP 401). It uses an OAuth2Handler to refresh the token and retry the request up to a specified number of times.
$maxRetries = 3;
$authConfig = new ClientCredentialsConfig(new ClientCredentials($clientId, $clientSecret), [
'handler' => $authHandler,
]);
$oauthHandler = OAuthHandlerFactory::ofAuthConfig($authConfig),
//$maxRetries is optional. If not specified, a default value of 1 is used
$reauthMiddleware = MiddlewareFactory::createReauthenticateMiddleware($oauthHandler, $maxRetries);