Завжди відображайте API-виключення у форматі JSON в Laravel

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Вам цікаво дізнатися, як легко зробити так, щоб API завжди повертав JSON-формат для виключень у Laravel 11 без використання додаткового middleware? Читайте далі, щоб дізнатися про простий та ефективний спосіб налаштування обробки помилок у ваших API-маршрутах!

Чи коли-небудь ви реалізовували повернення JSON у відповідь на запити API за допомогою кастомного проміжного програмного забезпечення, подібного до наведеного нижче?

class ForceJsonResponse
{
    public function handle(Request $request, Closure $next)
    {
        $request->headers->set('Accept', 'application/json');
 
        return $next($request);
    }
}

Laravel 11 надає зручний спосіб зробити це без додаткового проміжного програмного забезпечення. Це особливо корисно, якщо ви тестуєте API маршрути у веб-браузері та завжди отримуєте JSON, навіть без налаштування заголовка Accept на application/json чи використання наведеного вище коду:

// bootstrap/app.php
 
return Application::configure(basePath: dirname(__DIR__))
 
    //...
 
    ->withExceptions(function (Exceptions $exceptions) {
        $exceptions->shouldRenderJsonWhen(function (Request $request, Throwable $e) {
            if ($request->is('api/*')) {
                return true;
            }
 
            return $request->expectsJson();
        });
    })->create();

Метод shouldRenderJsonWhen() гарантує, що будь-які виключення, що виникають під час запиту API, будуть відображені у форматі JSON. Окрім виключень, вам потрібно стежити, щоб звичайні відповіді також повертали JSON.

Ця порада походить із документації, яка також містить корисні поради щодо обробки виключень, налаштування відповідей на помилки та багато іншого!

Популярні

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

Logomark Logotype

Налаштування Xdebug з Docker та PHP 8.4 всього за одну хвилину

Встановлення Xdebug може бути складним завданням, але в цій статті ми розкриємо, як швидко та просто налаштувати його за допомогою Docker на прикладі Laravel. Дочитайте до кінця, щоб дізнатися, як за кілька хвилин зробити Xdebug вашим надійним помічником у розробці