HttpClientRecorder


Imen EZZINE

Développeuse PHP Symfony
Café Tech avec Imen


@imenezzine
Communauté de symfony en Tunisie

Imen Ezzine






RecordHttpClientBundle

// ./tests/Controller/TestGetRandomController.php
use Symfony\Bridge\PhpUnit\HttpClientRecorder\Attribute\UseRecord;
use Symfony\Component\HttpClient\RecorderMode;
#[UseRecord]
public function testGetRandomEndpointExists(): void
{
$client = static::createClient();
$client->request('GET', 'random');
$this->assertResponseIsSuccessful();
}
{
"log": {
"version": "1.2",
"creator": {
"name": "HttpRecorder"
},
"entries": [
{
"startedDateTime": "2026-03-26T15:03:51.772Z",
"request": {
"method": "GET",
"url": "https:\/\/catfact.ninja\/fact",
"postData": null
},
"response": {
"status": 200,
"headers": {
"date": [
"Thu, 26 Mar 2026 15:03:54 GMT"
],
"content-type": [
"application\/json"
],
"server": [
"cloudflare"
],
"cache-control": [
"no-cache, private"
],
"x-ratelimit-limit": [
"100"
],
"x-ratelimit-remaining": [
"99"
],
"access-control-allow-origin": [
"*"
],
"set-cookie": [
"XSRF-TOKEN=eyJpdiI6ImpHRWw3ejdpeVJJb3RMTGZ6ZnRpVnc9PSIsInZhbHVlIjoiTkpJbVZFejNhYWRuaUlINmZTaExPOFhpeWs2QkRoZkxZV2hnNWozb2xmWlhmblFhK2JzRUZ1amNwRm5hcDhSRnhuZkplNTFvZ0o1bWVWeHZNVi9mN2p4ZjREMU0rLzRSTzN0UStsMDltR1dERnlZZ3pFK0tGZUVIY1Joa1hUQUwiLCJtYWMiOiIxMGE4YzJjZWE2MTVlNTVlNzQ0MDBkYTMxN2E2MzkxYzg1ZGE1NTNlNzFiZmM2N2YyOWNhN2FiYTIyNGE0OGI1IiwidGFnIjoiIn0%3D; expires=Thu, 26-Mar-2026 17:03:54 GMT; Max-Age=7200; path=\/; secure; samesite=lax",
"catfacts_session=eyJpdiI6InIyUmZPQWc3UEhrYkgwK1AvUEpjc0E9PSIsInZhbHVlIjoiRTJaZDdiVWxzSzl3VlFReHZjU21RRWxkcTdIUTh1U0RjN01QZTBTd0hueW9TUE84UStib1RmL3lZdVFRSm9RRmZzbXBCY2thcmViZGdBQytid3pPN3hVaUJCeEN6ZzQzYlNLUWhMVTRGS2xnelpvVUFnc2RyWS9PZUE1aS9vR1QiLCJtYWMiOiI0NzViNjQwMzQzZjExMzY2ZGZhNGJkZDJiNjdjNWI2OTRlZjdiMTU1YTZiMjUxZWFkZmUyZjIzZWUxMmNlNDRjIiwidGFnIjoiIn0%3D; expires=Thu, 26-Mar-2026 17:03:54 GMT; Max-Age=7200; path=\/; secure; httponly; samesite=lax",
"146rl06Wfdn6IPq2gJmWGMFny4Z4ebKlr9aPenOX=eyJpdiI6IlJRaFRBNEpFTkJlaEFMaFZnOWFUc1E9PSIsInZhbHVlIjoicjI3Rzhkd2JzVUFzam0xYU4xQ0lXSkMyTEhqaFFkblFnUUt5S1o0R0NDSmJ4UFpTeUZkcEY5TE1CTXlNelkyYm5SYnNuSkZic2xmVGlDTXA4K09SRTJyeXFXUnJTMWs1NWdtY2d0YWp5bHFvMzVnUkliN1BxUXdnSy9Da0FHeGNGL1l4ck5BUUs0Qk54a0xXM05GaXVHMTM4a0JIVWFMeFJISGFXbTJrSWRUSHRZQnBhNEFSem9hTm9HM2dEOFpnOVUrSjBidG82THF1NkNLUkVhMzliZStZNDdLemZqWmdZcjhUcnVuUitueUFXWU9md1hmWVl2aTRHNFd0Y1pQSlZTeXNTaEZzS0RZZzV4QU83dzdETzkyMUYvR3ljeHVhYUtHSHEzdzN1aFRKZ0d6eXo0emVzam5xN3lySGRsMmpDMmtncjh5UURJWjhaVC82NnFNM0tQcTVQb0dLRXZLN0x5dkxSVHlLQnlCUGN1Y3VtM20zN1V5T2ZUR2MzK3RHIiwibWFjIjoiMDk3MWMzMTE5YWVhNWZiOTczMjc1MjliNWJlZWYwMTQ1NDVmMGJkZDQ2YjcxOGYyNmY5ZGU3ODczNDVhM2VjYyIsInRhZyI6IiJ9; expires=Thu, 26-Mar-2026 17:03:54 GMT; Max-Age=7200; path=\/; secure; httponly; samesite=lax"
],
"x-frame-options": [
"SAMEORIGIN"
],
"x-xss-protection": [
"1; mode=block"
],
"x-content-type-options": [
"nosniff"
],
"nel": [
"{\"report_to\":\"cf-nel\",\"success_fraction\":0.0,\"max_age\":604800}"
],
"cf-cache-status": [
"DYNAMIC"
],
"report-to": [
"{\"group\":\"cf-nel\",\"max_age\":604800,\"endpoints\":[{\"url\":\"https:\/\/a.nel.cloudflare.com\/report\/v4?s=EvdmjcUbEfp1RDsHahL3OCUZ6AsKZuzi0azgv44IduLdEo2pS48xThEO17zeu2VqGBnpPK8ieUXbShnb68Y4Jqc23M8%2FZV83M002KZEP4ecrO7V5%2BeXXZYWcANhD4mv3\"}]}"
],
"content-encoding": [
"gzip"
],
"cf-ray": [
"9e270b77fca085fe-CDG"
],
"alt-svc": [
"h3=\":443\"; ma=86400"
]
},
"content": {
"text": "{\"fact\":\"The Maine Coon cat is America's only natural breed of domestic feline. It is 4 to 5 times larger than the Singapura, the smallest breed of cat.\",\"length\":143}"
}
}
}
]
}
}Démo?





HTTPClientRecorder
By Imen TROUDI
HTTPClientRecorder
- 4