API для «программного обеспечения для имитации ответов третьих сторон», которое можно включить в тесты API вашего приложения.
Для автоматической пересылки запросов к макету API есть возможность использовать HandlerStack
для Guzzle
. HandlerStack
проверяет, был ли уже сохранен запрос, и если нет, запрос будет отправлен на правильный хост, а затем ответ будет кэширован, так что в следующий раз запрос будет отправлен на макет API, а кэшированный ответ будет возвращен.
<?php//...$apiMockClient = новый GuzzleHttpClient([/*...*/]);$apiMock = новый ApiMockCoreApiMock($apiMockClient);$proxyStack = новый ApiMockProxyProxyStack($apiMock);$myDefaultClient = новый GuzzleHttpClient ([/*...*/'обработчик' => $проксиСтек, ]);// Будет отправлено через example.org$myDefaultClient->get('https://example.org', []);// Будет отправлено через API Mock$myDefaultClient->get('https:/ /example.org', []);
ApiMock::getClientRequest()
получает 404/null А) Рассматриваемый запрос никогда не вызывался вашим приложением, поэтому запрос с requestKey никогда не записывался. Убедитесь, что ApiMock::addResponse()
в правильном порядке. Возможно, один из предыдущих ответов не соответствует ожиданиям вашего приложения и приводит к его сбою?
Б) Ваши запросы к API Mock используют разные ключи сеанса (или вообще не используют их). Например, это может произойти, если части вашего приложения работают асинхронно (например, в очередях). Используйте функцию $sessionCacheFile, чтобы получить правильный сеансовый ключ. (укажите путь к файлу, в который API Mock может сбросить используемый в данный момент ключ сеанса, а затем получить его в вашем приложении).