Google API Core Client - Class MiddlewareInterface (1.42.4)

Reference documentation and code samples for the Google API Core Client class MiddlewareInterface.

Middlewares must take a MiddlewareInterface as their first constructor argument, which represents the next middleware in the chain. This next middleware MUST be invoked by this MiddlewareInterface, and the result must be returned as part of the __invoke method implementation.

To create your own middleware, first implement the interface, as well as pass the handler in through the constructor:

use Google\ApiCore\Call;
use Google\ApiCore\Middleware\MiddlewareInterface;

class MyTestMiddleware implements MiddlewareInterface
{
    public function __construct(MiddlewareInterface $handler)
     {
.         $this->handler = $handler;
     }
     public function __invoke(Call $call, array $options)
     {
         echo "Logging info about the call: " . $call->getMethod();
         return ($this->handler)($call, $options);
     }
}

Next, add the middleware to any class implementing GapicClientTrait by passing in a callable which returns the new middleware:

$client = new ExampleGoogleApiServiceClient();
$client->addMiddleware(function (MiddlewareInterface $handler) {
    return new MyTestMiddleware($handler);
});

Namespace

Google \ ApiCore \ Middleware

Methods

__invoke

Modify or observe the API call request and response.

The returned value must include the result of the next MiddlewareInterface invocation in the chain.

Parameters
Name Description
call Google\ApiCore\Call
options array
Returns
Type Description
GuzzleHttp\Promise\PromiseInterface|Google\ApiCore\ClientStream|Google\ApiCore\ServerStream|Google\ApiCore\BidiStream