Task Manager API — это RESTful сервис для управления задачами. Он позволяет пользователям создавать, редактировать, удалять задачи и управлять их статусами. API поддерживает регистрацию и авторизацию пользователей через JWT, обеспечивает безопасность данных и предоставляет удобные возможности фильтрации.
- Регистрация пользователей.
- Авторизация с использованием JWT.
- CRUD-операции с задачами:
- Создание задачи.
- Просмотр задач.
- Обновление задач.
- Удаление задач.
- Фильтрация задач:
- По статусу (выполненные/невыполненные).
- По дедлайну.
- Валидация данных.
- Backend: ASP.NET Core (8.0)
- База данных: PostgreSQL
- Авторизация: JWT (JSON Web Token)
- Контейнеризация: Docker (опционально)
- Документация API: Swagger/OpenAPI
Метод | Endpoint | Описание | Авторизация |
---|---|---|---|
POST |
/api/v1/auth/register |
Регистрация нового пользователя | Нет |
POST |
/api/v1/auth/login |
Авторизация пользователя (JWT) | Нет |
Метод | Endpoint | Описание | Авторизация |
---|---|---|---|
GET |
/api/tasks |
Получить список задач | Да |
POST |
/api/tasks |
Создать новую задачу | Да |
GET |
/api/tasks/{id} |
Получить задачу по ID | Да |
PUT |
/api/tasks/{id} |
Обновить задачу | Да |
DELETE |
/api/tasks/{id} |
Удалить задачу | Да |
GET |
/api/tasks/filter |
Фильтровать задачи | Да |
Поле | Тип | Описание |
---|---|---|
Id |
string | Уникальный идентификатор |
Username |
string | Логин пользователя |
Email |
string | Email пользователя |
PasswordHash |
string | Хэш пароля |
Поле | Тип | Описание |
---|---|---|
Id |
GUID | Уникальный идентификатор |
Title |
string | Название задачи |
Description |
string | Описание задачи |
Status |
string | Статус задачи (например, "done") |
ExpiredAt |
DateTime? | Дата выполнения задачи |
CreatedAt |
DateTime? | Дата выполнения задачи |
Priority |
int | Приоритет задачи |
ClientId |
string | Внешний ключ на пользователя |
Comments |
ICollection | Комментарии к задаче |
Label |
string | Тип задачи (bug, feature, hotfix) |
Поле | Тип | Описание |
---|---|---|
Id |
GUID | Уникальный идентификатор |
Title |
string | Название задачи |
WhatHasBeenUpdated |
string | Что было сделано |
CreatedAt |
DateTime? | Дата выполнения задачи |
TaskId |
GUID | Идентификатор задачи |
Поле | Тип | Описание |
---|---|---|
Id |
GUID | Уникальный идентификатор |
Comment |
string | Комментарий |
CreatedAt |
DateTime? | Дата создание комментария |
ClientId |
string | Идентификатор клиента |
Tasks |
ICollection | Список задач |
Поле | Тип | Описание |
---|---|---|
Id |
GUID | Уникальный идентификатор |
NameCompany |
string | Название компании |
DescriptionCompany |
string | Описание компании (необязательное поле) |
CompanyIndustry |
string | Чем занимается компания |
QuantityEmployees |
int | Количество сотрудников |
Tasks |
ICollection | Задачи |
Clients |
ICollection | Сотрудники |
- Установите .NET SDK версии 8.0 или выше.
- Docker
- Скачайте WSL образы (если вы запускаете на Windows).
- Для
Windows
: перейдите в корень проекта и выполните скрипт./run-containers.ps1
- Для
Linux
: Перейдите в корень проекта и выполните скрипт./run-containers.sh
В файлах appsettings.json
- appsettings.Development.json
укажите строку подключения:
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=TaskManager;Username={YourUserName};Password={YourPassword}"
},
"ApplicationSettings": {
"Key": "YourSecretKey",
"Issuer": "TaskManagerAPI",
"Audience": "TaskManagerAPIUsers",
"TokenValidityInMinutes": "5"
}