For the complete documentation index, see llms.txt. This page is also available as Markdown.

Testing API requests

When testing HTTP requests you need to create mock responses based on what would actually be returned from a real HTTP request. Symfony's HTTPClient has support for testing HTTP requests.

You can also use theMockResponseFromFile class to generate a mock response easily from a file.

MockResponseFromFile

Allows you to load a mock request from file.

Parameters

  • $filename (string) File to load mock response from

Description

Body file is loaded from {$filename}

The optional info file is loaded from {$filename}.info.php and must contain the $info variable (array). By default mock responses return a 200 status code which you can change by setting the $info array.

Usage

The following code loads ./responses/api-test.json and if it exists ./responses/api-test.json.info.php to create a mock response.

use Symfony\Component\HttpClient\MockHttpClient;
use Strata\Data\Api_DELETE\RestApi;
use Strata\Data\Response\MockResponseFromFile;

$responses = [
    new MockResponseFromFile(__DIR__ . '/responses/api-test.json'),
];

$api = new RestApi('https://example.com/');
$api->setClient(new MockHttpClient($responses, 'https://example.com/'));

$response = $api->get('test');

// Outputs:404
echo $response->getStatusCode();

// Outputs: JSON response content
echo $response->getContent();

// Outputs: 0
echo $api->getHeader($response, 'X-Total-Results');

./responses/api-test.json

./responses/api-test.json.info.php

See ResponseInterface::getInfo() for possible info, the most common are:

  • http_code (int) - the last HTTP response code

  • response_headers (array) - an array of response headers

Last updated

Was this helpful?