Позволяет работать с сущностью items как по API, так и через пользовательский интерфейс.
- Клонируйте репозиторий: git clone https://github.com/laravel-geek/laravel-rest-api.git
- Перейдите в директорию проекта: cd laravel-rest-api
- Установите зависимости: composer install
- Скопируйте файл .env.example в .env и настройте соединение с базой данных
- Запустите миграции: php artisan migrate
- Запустите сиды для заполнения таблицы тестовыми данными: php artisan db:seed
API работает со следующими методами:
Метод | URI | Описание |
---|---|---|
GET | /api/v1/items | Получить список всех items |
GET | /api/v1/items/{id} | Получить информацию по ID |
POST | /api/v1/items | Создать новый item |
PUT/PATCH | /api/v1/items/{id} | Обновить информацию по ID |
DELETE | /api/v1/items/{id} | Удалить item по ID |
Пример запроса POST:
{
"name": "Название элемента",
"key": "Ключ элемента"
}
Пример ответа:
{
"id": 1,
"name": "Название элемента",
"key": "Ключ элемента",
"created_at": "2023-03-05T11:30:00.000000Z",
"updated_at": "2023-03-05T11:30:00.000000Z"
}
Приложение использует аутентификацию с помощью Laravel Passport, поэтому для доступа к методам API необходимо получить токен. Для этого нужно отправить POST запрос на /api/login с полями email и password, и полученный токен использовать в заголовке Authorization: Bearer {token} при запросах к методам API.
composer require laravel/passport "~9.0"
В самом проекте аутентификация отключена. Для включения нужно раскомментить проверку в контроллере и зарегистрировать boot.
Для истории изменений сущности используется пакет Laravel Auditing - таблица audits.
composer require owen-it/laravel-auditing
Пользовательский интерфейс доступен по адресу /items.
Необходимые возможности API:
- Создание элементов
- Обновление элементов
- Удаление элементов
- Получение информации об элементе
- Валидация полей сущности
- Пользовательский интерфейс для работы с сущностью
- Использование token для доступа к данным
- История изменений сущности Вводные данные:
Поля сущности:
- id - int автоинкремент
- name - char(255)
- key - char(25) not null
- created_at - datetime - дата создания элемента
- updated_at - datetime - дата обновления элемента
PHP8, Laravel