Создание RESTful API с Laravel включает в себя несколько ключевых шагов, включая настройку базы данных, создание моделей, контроллеров и маршрутов, а также реализацию аутентификации и авторизации. В этом руководстве мы рассмотрим, как создать простое API для управления пользователями.

1. Установка и настройка Laravel

Убедитесь, что у вас установлен Laravel и Composer. Создайте новый проект Laravel, если у вас его еще нет:

composer create-project --prefer-dist laravel/laravel api-example

Перейдите в директорию проекта:

cd api-example

2. Настройка базы данных

Откройте файл .env в корне проекта и настройте параметры подключения к базе данных. Например, для MySQL:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password

3. Создание модели и миграции

Для создания модели User и соответствующей миграции используйте команду:

php artisan make:model User -m

Это создаст файл миграции в database/migrations. Откройте этот файл и определите структуру таблицы users:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

Запустите миграции:

php artisan migrate
 

4. Создание контроллера

Создайте контроллер для управления пользователями:

php artisan make:controller UserController --api

Это создаст контроллер с методами для CRUD-операций. Откройте app/Http/Controllers/UserController.php и добавьте необходимые методы.

5. Создание маршрутов

Откройте routes/api.php и определите маршруты для вашего API:

Route::apiResource('users', 'UserController');

6. Реализация аутентификации и авторизации

Для аутентификации и авторизации Laravel предлагает несколько способов, включая Sanctum и Passport. В этом примере мы будем использовать Sanctum.

Установите Sanctum через Composer:

composer require laravel/sanctum

Публикуйте конфигурацию Sanctum:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

Запустите миграции для Sanctum:

php artisan migrate

Добавьте трейт Laravel\Sanctum\HasApiTokens в модель User:

use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;
}

В config/auth.php установите sanctum в качестве драйвера API:

'guards' => [
    'api' => [
        'driver' => 'sanctum',
        'provider' => 'users',
    ],
],

Теперь вы можете использовать Sanctum для аутентификации и авторизации вашего API.

7. Тестирование API

Используйте инструменты, такие как Postman или Insomnia, для тестирования вашего API. Вы можете создать пользователя, получить токен аутентификации и использовать его для выполнения запросов к защищенным маршрутам.

Это базовое руководство по созданию RESTful API с Laravel, включая аутентификацию и авторизацию. Для более глубокого погружения в Laravel и Sanctum рекомендуется изучить официальную документацию.