Skip to content
/ todo-api Public

Простое REST API для управления задачами (CRUD) на Laravel 12

Notifications You must be signed in to change notification settings

cabra/todo-api

Repository files navigation

Task Management API

Простое 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

Установка и запуск

1. Клонирование репозитория

git clone https://github.com/cabra/todo-api.git
cd todo-api

2. Установка зависимостей

composer install

3. Настройка окружения

cp .env.example .env
php artisan key:generate

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

Отредактируйте файл .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;

5. Выполнение миграций

php artisan migrate

6. Запуск сервера

php artisan serve

Приложение будет доступно по адресу: http://localhost:8000

API Endpoints

Получить все задачи

GET /api/tasks

Создать задачу

POST /api/tasks
Content-Type: application/json

{
  "title": "Название задачи",
  "description": "Описание задачи",
  "status": "pending"
}

Получить задачу по ID

GET /api/tasks/{id}

Обновить задачу

PUT /api/tasks/{id}
Content-Type: application/json

{
  "title": "Обновленное название",
  "status": "completed"
}

Удалить задачу

DELETE /api/tasks/{id}

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

Встроенный HTTP-клиент PHPStorm

В корне проекта есть файл requests.http с готовыми запросами для тестирования:

# Запуск тестовых запросов в PHPStorm
# Нажмите ▶️ рядом с каждым запросом

Альтернативные инструменты:

Примеры использования

Создание задачи

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/tasks

Валидация

  • title: обязательное поле, строка, максимум 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

About

Простое REST API для управления задачами (CRUD) на Laravel 12

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages