Vue d'ensemble

HTTPX 0.22, publié le 27 janvier 2022, introduit les event hooks pour intercepter les requêtes et améliore l'API de transport personnalisé.

Fonctionnalités principales

Event hooks

Les event hooks permettent d'intercepter les requêtes et réponses pour ajouter du logging, de l'authentification ou des transformations sans modifier le code client.

python
import httpx

def log_request(request):
    print(f'>> {request.method} {request.url}')

def log_response(response):
    print(f'<< {response.status_code}')

client = httpx.Client(
    event_hooks={
        'request': [log_request],
        'response': [log_response],
    }
)
response = client.get('https://httpbin.org/get')

API de transport

L'API de transport permet de créer des backends personnalisés pour mocker les requêtes ou utiliser des protocoles alternatifs.

python
import httpx

# Transport personnalisé pour les tests
def mock_transport(request):
    return httpx.Response(
        200,
        json={'status': 'ok'},
    )

client = httpx.Client(
    transport=httpx.MockTransport(mock_transport)
)
response = client.get('https://api.example.com/health')
print(response.json())  # {'status': 'ok'}

Sources