Как создать API регистрации в Laravel: пошаговое руководство

Чтобы создать API регистрации в Laravel, вам необходимо определить маршруты, контроллеры и модели базы данных. Вот пример того, как вы можете реализовать API регистрации с помощью Laravel:

  1. Определите маршрут:
    В файле routes/api.phpдобавьте следующее определение маршрута:
Route::post('/signup', 'AuthController@signup');
  1. Создайте контроллер:
    Создайте новый контроллер с именем AuthController, используя следующую команду:
php artisan make:controller AuthController

Откройте файл AuthController.phpи добавьте следующий метод:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
class AuthController extends Controller
{
    public function signup(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required|min:6',
        ]);
        $user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password),
        ]);
        return response()->json(['message' => 'User registered successfully', 'user' => $user]);
    }
}
  1. Создайте модель пользователя.
    Если у вас еще нет модели пользователя, создайте ее с помощью следующей команды:
php artisan make:model User

Убедитесь, что в файле User.phpесть необходимые заполняемые поля:

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
    use HasFactory, Notifiable;
    protected $fillable = [
        'name',
        'email',
        'password',
    ];
    // ...
}

Вот и все! Теперь вы создали API регистрации в Laravel. При отправке POST-запроса на /api/signupс необходимыми параметрами (имя, email, пароль), он создаст нового пользователя в базе данных и вернет ответ JSON, указывающий на успех.