Expand description
Request/response interceptor infrastructure.
Interceptors let callers inspect and modify every A2A request before it is sent and every response after it is received. Common uses include:
- Adding
Authorizationheaders (seecrate::auth::AuthInterceptor). - Logging or tracing.
- Injecting custom metadata.
§Example
use a2a_protocol_client::interceptor::{CallInterceptor, ClientRequest, ClientResponse};
use a2a_protocol_client::error::ClientResult;
struct LoggingInterceptor;
impl CallInterceptor for LoggingInterceptor {
fn before<'a>(&'a self, req: &'a mut ClientRequest)
-> impl std::future::Future<Output = ClientResult<()>> + Send + 'a
{
async move { let _ = req; Ok(()) }
}
fn after<'a>(&'a self, resp: &'a ClientResponse)
-> impl std::future::Future<Output = ClientResult<()>> + Send + 'a
{
async move { let _ = resp; Ok(()) }
}
}Structs§
- Client
Request - A logical A2A request as seen by interceptors.
- Client
Response - A logical A2A response as seen by interceptors.
- Interceptor
Chain - An ordered list of
CallInterceptors applied to every request.
Traits§
- Call
Interceptor - Hooks called before every A2A request and after every response.