Простое REST API для управления задачами (CRUD) на Laravel 12.
- PHP 8.3
- Laravel 12
- MySQL
- REST API
- ✅ Создание задач
- ✅ Просмотр списка задач
- ✅ Просмотр отдельной задачи
- ✅ Обновление задач
- ✅ Удаление задач
- ✅ Валидация данных
- ✅ Обработка ошибок
todo-api/
├── app/
│ ├── Models/
│ │ └── Task.php
│ └── Http/
│ └── Controllers/
│ └── TaskController.php
├── config/
├── database/
│ ├── migrations/
│ │ └── 2025_09_02_000000_create_tasks_table.php
│ └── seeders/
├── routes/
│ ├── api.php # API маршруты
│ └── web.php # Веб-маршруты
├── tests/
├── requests.http # Файл для тестирования в PHPStorm
└── README.md
git clone https://github.com/cabra/todo-api.git
cd todo-apicomposer installcp .env.example .env
php artisan key:generateОтредактируйте файл .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=todo_api
DB_USERNAME=root
DB_PASSWORD=your_passwordСоздайте базу данных в MySQL:
CREATE DATABASE todo_api;php artisan migratephp artisan serveПриложение будет доступно по адресу: http://localhost:8000
GET /api/tasksPOST /api/tasks
Content-Type: application/json
{
"title": "Название задачи",
"description": "Описание задачи",
"status": "pending"
}GET /api/tasks/{id}PUT /api/tasks/{id}
Content-Type: application/json
{
"title": "Обновленное название",
"status": "completed"
}DELETE /api/tasks/{id}В корне проекта есть файл requests.http с готовыми запросами для тестирования:
# Запуск тестовых запросов в PHPStorm
# Нажмите ▶️ рядом с каждым запросом- Postman
- Thunder Client (расширение для VS Code)
- curl (командная строка)
curl -X POST http://localhost:8000/api/tasks \
-H "Content-Type: application/json" \
-d '{
"title": "Изучить Laravel",
"description": "Освоить основы фреймворка",
"status": "pending"
}'curl -X GET http://localhost:8000/api/taskstitle: обязательное поле, строка, максимум 255 символовdescription: необязательное поле, строкаstatus: одно из значений:pending,in_progress,completed
API возвращает соответствующие HTTP-статусы:
200 OK- успешный запрос201 Created- задача создана422 Unprocessable Entity- ошибка валидации404 Not Found- задача не найдена
- PHP 8.2+
- Composer 2.0+
- MySQL 8.0+
- Laravel 12
Валентина Павлова - cabra.beast@gmail.com