Создание контроллера API в Laravel — распространенная задача при создании веб-приложений, которым требуется серверный API. В этой статье мы рассмотрим различные методы создания контроллера API в Laravel с примерами кода.
Метод 1: использование команды Artisan
Laravel предоставляет удобную команду Artisan для создания нового контроллера API. Откройте терминал и выполните следующую команду:
php artisan make:controller ApiController --api
При этом будет создан новый файл с именем ApiController.phpв каталоге app/Http/Controllers. Опция --apiуказывает Laravel создать базовый контроллер API с изобретательными методами.
Метод 2: создание контроллера вручную
Вы также можете создать контроллер API вручную, создав новый файл в каталоге app/Http/Controllers. Вот пример:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class ApiController extends Controller
{
public function index()
{
// Retrieve all users
$users = User::all();
// Return the users as JSON
return response()->json($users);
}
public function show($id)
{
// Retrieve a user by ID
$user = User::find($id);
// Return the user as JSON
return response()->json($user);
}
public function store(Request $request)
{
// Validate the request data
$validatedData = $request->validate([
'name' => 'required|string',
'email' => 'required|email|unique:users',
'password' => 'required|string|min:8',
]);
// Create a new user
$user = User::create($validatedData);
// Return the newly created user as JSON
return response()->json($user, 201);
}
public function update(Request $request, $id)
{
// Validate the request data
$validatedData = $request->validate([
'name' => 'required|string',
'email' => 'required|email|unique:users,email,' . $id,
'password' => 'required|string|min:8',
]);
// Find the user by ID
$user = User::find($id);
// Update the user
$user->update($validatedData);
// Return the updated user as JSON
return response()->json($user);
}
public function destroy($id)
{
// Find the user by ID
$user = User::find($id);
// Delete the user
$user->delete();
// Return a success message
return response()->json(['message' => 'User deleted']);
}
}
В этом примере мы создали контроллер API с именем ApiControllerс методами для обработки операций CRUD в модели User. Метод indexизвлекает всех пользователей, метод showизвлекает одного пользователя по идентификатору, метод storeсоздает нового пользователя, метод Метод 11обновляет существующего пользователя, а метод destroyудаляет пользователя.
Чтобы использовать этот контроллер, вам необходимо определить соответствующие маршруты в файле routes/api.php.