task_manager/config/swagger.yaml
2025-03-21 23:55:47 +03:00

254 lines
7.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: "3.0.0"
info:
title: "Task Manager API"
description: "API для управления задачами, проектами и пользователями"
version: "1.0.0"
servers:
- url: "http://localhost:8080/api/v1"
description: "Локальный сервер для тестирования API"
paths:
/user/login:
post:
summary: "Вход пользователя в систему"
description: "Авторизация пользователя по имени и паролю"
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
example: "johndoe"
description: "Имя пользователя"
password:
type: string
example: "12345"
description: "Пароль пользователя"
responses:
"200":
description: "Авторизация успешна"
content:
application/json:
schema:
type: object
properties:
id:
type: integer
name:
type: string
email:
type: string
"401":
description: "Недействительный логин или пароль"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/user/register:
post:
summary: "Регистрация нового пользователя"
description: "Создание нового аккаунта пользователя"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/User"
responses:
"201":
description: "Пользователь успешно зарегистрирован"
content:
application/json:
schema:
$ref: "#/components/schemas/User"
"400":
description: "Ошибка в запросе"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/user/tasks:
get:
summary: "Получить задачи пользователя"
description: "Возвращает список задач для указанного пользователя"
parameters:
- name: "id_user"
in: query
required: true
schema:
type: integer
example: 1
description: "ID пользователя"
responses:
"200":
description: "Список задач пользователя"
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/Task"
"400":
description: "Отсутствует ID пользователя"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/user/projects:
get:
summary: "Получить проекты пользователя"
description: "Возвращает список проектов, связанных с пользователем"
parameters:
- name: "id_user"
in: query
required: true
schema:
type: integer
example: 1
description: "ID пользователя"
responses:
"200":
description: "Список проектов"
content:
application/json:
schema:
type: array
items:
type: string
"400":
description: "Отсутствует ID пользователя"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/projects:
post:
summary: "Создать проект"
description: "Создание нового проекта (в разработке)"
responses:
"501":
description: "Не реализовано"
content:
application/json:
schema:
$ref: "#/components/schemas/UnimplementedResponse"
get:
summary: "Получить проекты"
description: "Получение списка всех проектов (в разработке)"
responses:
"501":
description: "Не реализовано"
content:
application/json:
schema:
$ref: "#/components/schemas/UnimplementedResponse"
/projects/tasks:
post:
summary: "Создать задачу"
description: "Создание новой задачи для проекта"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/Task"
responses:
"201":
description: "Задача успешно создана"
content:
application/json:
schema:
$ref: "#/components/schemas/Task"
"400":
description: "Ошибка в запросе"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/projects/tasks/{task_id}:
patch:
summary: "Обновить задачу"
description: "Изменение данных задачи по ID"
parameters:
- name: "task_id"
in: path
required: true
schema:
type: integer
example: 42
description: "ID задачи"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/Task"
responses:
"200":
description: "Задача успешно обновлена"
content:
application/json:
schema:
$ref: "#/components/schemas/Task"
"400":
description: "Ошибка в запросе"
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/projects/sprints:
post:
summary: "Создать спринт"
description: "Создание спринта в проекте (в разработке)"
responses:
"501":
description: "Не реализовано"
content:
application/json:
schema:
$ref: "#/components/schemas/UnimplementedResponse"
components:
schemas:
ErrorResponse:
type: object
properties:
code:
type: integer
description: "HTTP-код ошибки"
message:
type: string
description: "Сообщение об ошибке"
error:
type: string
description: "Машинное описание ошибки"
UnimplementedResponse:
type: object
properties:
message:
type: string
example: "Not implemented"
User:
type: object
properties:
id:
type: integer
name:
type: string
email:
type: string
password:
type: string
Task:
type: object
properties:
id:
type: integer
name:
type: string
description:
type: string