Files
api-codegen/cdn-api.json
S.Gromov 15ed8c8b8d feat: инициализация API CodeGen
CLI утилита для генерации TypeScript API клиента из OpenAPI спецификации.
- Поддержка локальных файлов и URL для спецификаций
- Кастомизация имени выходного файла через флаг --name
- Генерация типизированного клиента с SWR хуками
- Минимальный вывод логов для лучшего UX
2025-10-26 22:30:58 +03:00

1 line
12 KiB
JSON
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","paths":{"/":{"get":{"operationId":"AppController_getHello","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/profile":{"get":{"operationId":"AppController_getProfile","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/auth/register":{"post":{"description":"Создаёт нового пользователя и возвращает JWT токен","operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterDto"}}}},"responses":{"201":{"description":"Пользователь успешно зарегистрирован","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResponseDto"}}}},"400":{"description":"Некорректные данные или пользователь уже существует"}},"summary":"Регистрация нового пользователя","tags":["Аутентификация"]}},"/auth/login":{"post":{"description":"Аутентифицирует пользователя и возвращает JWT токен","operationId":"AuthController_login","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginDto"}}}},"responses":{"200":{"description":"Пользователь успешно авторизован","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResponseDto"}}}},"401":{"description":"Неверный email или пароль"}},"summary":"Авторизация пользователя","tags":["Аутентификация"]}},"/auth/me":{"get":{"description":"Возвращает информацию о текущем авторизованном пользователе","operationId":"AuthController_getProfile","parameters":[],"responses":{"200":{"description":"Информация о пользователе","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponseDto"}}}},"401":{"description":"Не авторизован"}},"security":[{"JWT-auth":[]}],"summary":"Получение профиля текущего пользователя","tags":["Аутентификация"]}},"/projects":{"post":{"description":"Создаёт новый проект для текущего пользователя","operationId":"ProjectController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectDto"}}}},"responses":{"201":{"description":"Проект успешно создан","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResponseDto"}}}},"400":{"description":"Некорректные данные"},"401":{"description":"Не авторизован"}},"security":[{"JWT-auth":[]}],"summary":"Создать новый проект","tags":["Проекты"]},"get":{"description":"Возвращает все проекты текущего пользователя","operationId":"ProjectController_findAll","parameters":[],"responses":{"200":{"description":"Список проектов","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProjectResponseDto"}}}}},"401":{"description":"Не авторизован"}},"security":[{"JWT-auth":[]}],"summary":"Получить все проекты","tags":["Проекты"]}},"/projects/{id}":{"get":{"description":"Возвращает информацию о конкретном проекте","operationId":"ProjectController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"ID проекта","schema":{"example":"123e4567-e89b-12d3-a456-426614174000","type":"string"}}],"responses":{"200":{"description":"Информация о проекте","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResponseDto"}}}},"401":{"description":"Не авторизован"},"404":{"description":"Проект не найден"}},"security":[{"JWT-auth":[]}],"summary":"Получить проект по ID","tags":["Проекты"]},"patch":{"description":"Обновляет информацию о проекте","operationId":"ProjectController_update","parameters":[{"name":"id","required":true,"in":"path","description":"ID проекта","schema":{"example":"123e4567-e89b-12d3-a456-426614174000","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectDto"}}}},"responses":{"200":{"description":"Проект успешно обновлён","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectResponseDto"}}}},"400":{"description":"Некорректные данные"},"401":{"description":"Не авторизован"},"404":{"description":"Проект не найден"}},"security":[{"JWT-auth":[]}],"summary":"Обновить проект","tags":["Проекты"]},"delete":{"description":"Удаляет проект и все связанные данные","operationId":"ProjectController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"ID проекта","schema":{"example":"123e4567-e89b-12d3-a456-426614174000","type":"string"}}],"responses":{"204":{"description":"Проект успешно удалён"},"401":{"description":"Не авторизован"},"404":{"description":"Проект не найден"}},"security":[{"JWT-auth":[]}],"summary":"Удалить проект","tags":["Проекты"]}}},"info":{"title":"CDN API","description":"API документация для CDN сервиса","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"JWT-auth":{"scheme":"bearer","bearerFormat":"JWT","type":"http","name":"JWT","description":"Введите JWT токен","in":"header"}},"schemas":{"RegisterDto":{"type":"object","properties":{"email":{"type":"string","description":"Email пользователя","example":"user@example.com"},"password":{"type":"string","description":"Пароль пользователя (минимум 8 символов)","example":"SecurePassword123","minLength":8},"firstName":{"type":"string","description":"Имя пользователя","example":"Иван"},"lastName":{"type":"string","description":"Фамилия пользователя","example":"Иванов"}},"required":["email","password"]},"UserData":{"type":"object","properties":{"id":{"type":"string","description":"ID пользователя","example":"123e4567-e89b-12d3-a456-426614174000"},"email":{"type":"string","description":"Email пользователя","example":"user@example.com"},"firstName":{"type":"string","description":"Имя пользователя","example":"Иван"},"lastName":{"type":"string","description":"Фамилия пользователя","example":"Иванов"},"isEmailVerified":{"type":"boolean","description":"Подтверждён ли email","example":false},"createdAt":{"format":"date-time","type":"string","description":"Дата создания аккаунта","example":"2025-10-19T10:00:00.000Z"}},"required":["id","email","isEmailVerified","createdAt"]},"AuthResponseDto":{"type":"object","properties":{"access_token":{"type":"string","description":"JWT токен для авторизации","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."},"user":{"description":"Данные пользователя","allOf":[{"$ref":"#/components/schemas/UserData"}]}},"required":["access_token","user"]},"LoginDto":{"type":"object","properties":{"email":{"type":"string","description":"Email пользователя","example":"user@example.com"},"password":{"type":"string","description":"Пароль пользователя","example":"SecurePassword123"}},"required":["email","password"]},"UserResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"ID пользователя","example":"123e4567-e89b-12d3-a456-426614174000"},"email":{"type":"string","description":"Email пользователя","example":"user@example.com"},"firstName":{"type":"string","description":"Имя пользователя","example":"Иван"},"lastName":{"type":"string","description":"Фамилия пользователя","example":"Иванов"},"isEmailVerified":{"type":"boolean","description":"Подтверждён ли email","example":false},"createdAt":{"format":"date-time","type":"string","description":"Дата создания аккаунта","example":"2025-10-19T10:00:00.000Z"},"updatedAt":{"format":"date-time","type":"string","description":"Дата последнего обновления","example":"2025-10-19T10:00:00.000Z"}},"required":["id","email","isEmailVerified","createdAt","updatedAt"]},"CreateProjectDto":{"type":"object","properties":{"name":{"type":"string","description":"Название проекта","example":"Мой CDN проект","maxLength":255},"slug":{"type":"string","description":"Уникальный slug проекта (только латиница, цифры и дефис). Если не указан, генерируется автоматически","example":"my-cdn-project","maxLength":255},"description":{"type":"string","description":"Описание проекта","example":"Проект для хранения статических файлов"},"s3Endpoint":{"type":"string","description":"S3 endpoint URL","example":"https://s3.amazonaws.com"},"s3Bucket":{"type":"string","description":"Название S3 bucket","example":"my-cdn-bucket"},"s3Region":{"type":"string","description":"Регион S3","example":"us-east-1"},"s3AccessKey":{"type":"string","description":"S3 Access Key","example":"AKIAIOSFODNN7EXAMPLE"},"s3SecretKey":{"type":"string","description":"S3 Secret Key","example":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"}},"required":["name"]},"ProjectResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"ID проекта","example":"123e4567-e89b-12d3-a456-426614174000"},"name":{"type":"string","description":"Название проекта","example":"Мой CDN проект"},"slug":{"type":"string","description":"Уникальный slug проекта","example":"my-cdn-project"},"description":{"type":"string","description":"Описание проекта","example":"Проект для хранения файлов"},"userId":{"type":"string","description":"ID владельца проекта","example":"123e4567-e89b-12d3-a456-426614174000"},"s3Endpoint":{"type":"string","description":"S3 endpoint URL","example":"https://s3.amazonaws.com"},"s3Bucket":{"type":"string","description":"Название S3 bucket","example":"my-cdn-bucket"},"s3Region":{"type":"string","description":"Регион S3","example":"us-east-1"},"s3AccessKey":{"type":"string","description":"S3 Access Key","example":"AKIAIOSFODNN7EXAMPLE"},"s3SecretKey":{"type":"string","description":"S3 Secret Key (чувствительные данные)","example":"***hidden***"},"isActive":{"type":"boolean","description":"Активен ли проект","example":true},"createdAt":{"format":"date-time","type":"string","description":"Дата создания","example":"2025-10-19T10:00:00.000Z"},"updatedAt":{"format":"date-time","type":"string","description":"Дата последнего обновления","example":"2025-10-19T10:00:00.000Z"}},"required":["id","name","slug","userId","isActive","createdAt","updatedAt"]},"UpdateProjectDto":{"type":"object","properties":{"name":{"type":"string","description":"Название проекта","example":"Обновленное название","maxLength":255},"description":{"type":"string","description":"Описание проекта","example":"Обновленное описание"},"s3Endpoint":{"type":"string","description":"S3 endpoint URL","example":"https://s3.amazonaws.com"},"s3Bucket":{"type":"string","description":"Название S3 bucket","example":"my-cdn-bucket"},"s3Region":{"type":"string","description":"Регион S3","example":"us-east-1"},"s3AccessKey":{"type":"string","description":"S3 Access Key","example":"AKIAIOSFODNN7EXAMPLE"},"s3SecretKey":{"type":"string","description":"S3 Secret Key","example":"wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"},"isActive":{"type":"boolean","description":"Активен ли проект","example":true}}}}}}