Метод json
Метод json класса Response применяется для создания HTTP-ответа в формате JSON. Первым параметром передаются данные для преобразования в JSON, вторым - HTTP-статус код, третьим - массив дополнительных заголовков. Метод автоматически устанавливает заголовок Content-Type в application/json.
Синтаксис
<?php
response()->json($data, $status, $headers);
?>
Пример
Давайте вернём простой JSON-ответ с данными пользователя:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/user', function () {
$res = [
'id' => 1,
'name' => 'John Doe',
'email' => 'john@example.com'
];
return response()->json($res);
});
?>
Результат выполнения кода:
{
"id": 1,
"name": "John Doe",
"email": "john@example.com"
}
Пример
Давайте вернём JSON-ответ со статусом 201 Created:
<?php
use Illuminate\Support\Facades\Route;
Route::post('/article', function () {
$res = [
'message' => 'Article created successfully',
'article' => [
'id' => 1,
'title' => 'New Article',
'content' => 'Article content here'
]
];
return response()->json($res, 201);
});
?>
Результат выполнения кода:
{
"message": "Article created successfully",
"article": {
"id": 1,
"title": "New Article",
"content": "Article content here"
}
}
Пример
Давайте вернём JSON-ответ с дополнительными заголовками:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/data', function () {
$res = ['status' => 'success', 'data' => [1, 2, 3, 4, 5]];
$headers = [
'X-Custom-Header' => 'CustomValue',
'X-Request-Id' => '12345'
];
return response()->json($res, 200, $headers);
});
?>
Результат выполнения кода:
{
"status": "success",
"data": [1, 2, 3, 4, 5]
}
Пример
Давайте вернём JSON-ответ с коллекцией моделей Eloquent:
<?php
use Illuminate\Support\Facades\Route;
use App\Models\User;
Route::get('/users', function () {
$res = User::where('status', 'active')->get();
return response()->json($res);
});
?>
Результат выполнения кода:
[
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"status": "active"
},
{
"id": 3,
"name": "Jane Smith",
"email": "jane@example.com",
"status": "active"
}
]
Смотрите также
-
класс
Response,
который является основным классом для создания HTTP-ответов -
класс
JsonResponse,
который используется для более тонкой настройки JSON-ответов -
метод
json,
который позволяет получить JSON-данные из запроса -
метод
header,
который добавляет заголовки к HTTP-ответу