Add "API"

2026-04-12 20:26:05 +00:00
parent 9873cee729
commit 858f7d62a9

69
API.md Normal file

@@ -0,0 +1,69 @@
# API эндпоинты
Все эндпоинты (кроме auth) требуют cookie `va_token`.
## Аутентификация
| Метод | URL | Описание |
|---|---|---|
| POST | `/api/login` | Вход (login, password) |
| POST | `/api/logout` | Выход |
| GET | `/api/me` | Текущий пользователь |
## Проект
| Метод | URL | Описание |
|---|---|---|
| GET | `/api/project/:name` | Данные проекта (settings, letters, presets) |
| PUT | `/api/project/:name/settings` | Настройки (⚠️ admin only) |
| PUT | `/api/project/:name/draft` | Сохранить черновик |
| PUT | `/api/project/:name/block` | Обновить шаблон блока |
## Рендер
| Метод | URL | Описание |
|---|---|---|
| POST | `/api/project/:name/render-email` | Рендер PUG → HTML (pug, preheader, gender) |
## Письма
| Метод | URL | Описание |
|---|---|---|
| GET | `/api/project/:name/letters` | Список писем |
| POST | `/api/project/:name/letters` | Создать письмо |
| PUT | `/api/project/:name/letters/:id` | Обновить письмо |
| DELETE | `/api/project/:name/letters/:id` | Удалить письмо |
## FTP/SFTP
| Метод | URL | Описание |
|---|---|---|
| POST | `/api/project/:name/ftp/test` | Тест подключения |
| POST | `/api/project/:name/ftp/upload` | Загрузка картинки |
| POST | `/api/project/:name/ftp/list` | Список файлов |
| POST | `/api/project/:name/ftp/delete` | Удаление файла |
## Конфигурация
| Метод | URL | Описание |
|---|---|---|
| GET | `/api/config` | Конфиг (Yonote token, URLs) |
| PUT | `/api/config` | Обновить конфиг (⚠️ admin only) |
## Хедер/Футер
| Метод | URL | Описание |
|---|---|---|
| GET | `/api/parts-files` | Список pug-файлов header/footer |
| GET | `/api/parts-file-read?path=...` | Чтение pug-файла |
| POST | `/api/parts-file-write` | Запись pug-файла |
## Прочее
| Метод | URL | Описание |
|---|---|---|
| POST | `/api/check-links` | Проверка ссылок в письме |
| POST | `/api/upload-image` | Загрузка картинки (base64) |
| GET | `/api/project/:name/feed-suggestions` | Поиск товаров в фиде |
| GET | `/api/admin/users` | Список пользователей (admin) |
| POST | `/api/admin/users` | Создать пользователя (admin) |