Laravel додає потужний інструмент для відлагодження HTTP з методом Http::record(), який дозволяє вам перевіряти реальні HTTP запити, зберігаючи при цьому зв'язок зі справжніми зовнішніми сервісами.
use Illuminate\Support\Facades\Http;
// Розпочніть записування HTTP взаємодій
Http::record();
// Виконуйте реальні HTTP запити
Http::get('https://example.com/api/users');
Http::post('https://example.com/api/orders', ['product_id' => 123]);
// Отримайте доступ до записаних запитів та відповідей
Http::recorded(function ($request, $response) {
// Аналізуйте деталі запитів та відповідей
});
На відміну від Http::fake(), що блокує зовнішній зв'язок, цей метод забезпечує прозорість реальних запитів, дозволяючи їм виконуватись нормально.
public function testProductApiIntegration()
{
// Розпочніть записування HTTP взаємодій
Http::record();
// Виконайте реальну операцію, яка здійснює API виклики
$result = $this->app->make(ProductService::class)->syncWithExternalApi();
// Перевірте успішність операції
$this->assertTrue($result);
// Тепер перевірте HTTP взаємодії
$apiCallCount = 0;
$allStatusCodesSuccessful = true;
Http::recorded(function ($request, $response) use (&$apiCallCount, &$allStatusCodesSuccessful) {
$apiCallCount++;
// Перевірте статус відповіді
if ($response->status() >= 400) {
$allStatusCodesSuccessful = false;
}
// Логування взаємодії для відладки
Log::debug('API Call', [
'url' => $request->url(),
'method' => $request->method(),
'status' => $response->status()
]);
});
$this->assertGreaterThan(0, $apiCallCount, 'Не було здійснено жодних API викликів');
$this->assertTrue($allStatusCodesSuccessful, 'Декілька API викликів завершились невдало');
}
Цей підхід є безцінним для інтеграційного тестування, відладки зовнішніх API комунікацій, аудиту використання API та моніторингу продуктивності сторонніх сервісів — і все це без переривання звичайного функціонування вашого застосунку. Забезпечуючи можливість перевірки без модифікацій, метод Http::record() заповнює важливу прогалину між повністю зміненими тестами та неконтрольованими живими API взаємодіями.
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!