Laravel 11 REST API Основи
Після попереднього розділу Частина 3: Виведення даних з бази даних цього разу ми розглянемо, як додавати дані в базу даних.
Додавання методу Store
Додайте новий метод у контролер PostController, який називатиметься store.
Метод цей буде використовуватися для процесу додавання даних до бази даних.
Відкрийте файл контролера в app\Http\Controllers\Api\PostController.php і змініть код на такий:
paginate(5);
// return response()->json($posts);
//return data of posts as a resource
return new PostResource(true, 'Список даних постів', $posts);
}
public function store(Request $request)
{
//визначення правил валідації
$validator = Validator::make($request->all(), [
'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
'title' => 'required',
'content' => 'required',
]);
//перевірка, чи не зірвалась валідація
if ($validator->fails()) {
return response()->json($validator->errors(), 422);
}
//завантаження зображення
$image = $request->file('image');
$image->storeAs('public/posts', $image->hashName());
//створення поста
$post = Post::create([
'image' => $image->hashName(),
'title' => $request->title,
'content' => $request->content,
]);
//повернення відповіді
return new PostResource(true, 'Дані поста успішно додано!', $post);
}
}
Тестування REST API вставки
Відкрийте додаток Postman і не забудьте запустити проект Laravel, потім у Postman введіть URL http://127.0.0.1:8000/api/posts і перейдіть на вкладку body, виберіть form-data, а потім введіть наступні ключі та значення
| key | Type | Value |
| ------- | ------------| ---------------------------|
| image | file | Виберіть зображення з комп'ютера |
| title | text | Доданий заголовок |
| content | text | Доданий контент |
Після заповнення натискайте send, і якщо все вірно, отримаєте такий результат:
{
"success": "Дані поста успішно додано!",
"message": {
"image": "0Khv0EUzcUDsFvNZBn3aGgr2ySNrFA7dlOB2GltX.jpg",
"title": "Доданий заголовок",
"content": "Доданий контент",
"updated_at": "2024-12-28T07:29:43.000000Z",
"created_at": "2024-12-28T07:29:43.000000Z",
"id": 1
},
"data": true
}
Тестування REST API
Далі, в частині 5, ми продовжимо обговорення відображення деталей даних з REST API ....
Перекладено з: REST-API Basic di Laravel 11 : Part 4 | Input data ke Database