- Created backend structure with Go, including main application logic and API endpoints. - Added Docker support for both development and production environments. - Introduced frontend using Nuxt 3 with Tailwind CSS for styling. - Included configuration files for Docker and environment variables. - Established basic documentation for contributing, development, and deployment processes. - Set up .gitignore and .dockerignore files to manage ignored files in the repository.
4.1 KiB
4.1 KiB
HTTP API
API доступно по префиксу /map/api/. Для запросов, требующих авторизации, используется cookie session (устанавливается при логине).
Авторизация
- POST /map/api/login — вход. Тело:
{"user":"...","pass":"..."}. При успехе возвращается JSON с данными пользователя и выставляется cookie сессии. При первом запуске возможен bootstrap: логинadminи пароль изHNHMAP_BOOTSTRAP_PASSWORDсоздают первого админа. - GET /map/api/me — текущий пользователь (по сессии). Ответ:
username,auths, при необходимостиtokens,prefix. - POST /map/api/logout — выход (инвалидация сессии).
- GET /map/api/setup — проверка, нужна ли первичная настройка. Ответ:
{"setupRequired": true|false}.
Кабинет
- POST /map/api/me/tokens — сгенерировать новый токен загрузки (требуется право
upload). Ответ:{"tokens": ["...", ...]}. - POST /map/api/me/password — сменить пароль. Тело:
{"pass":"..."}.
Карта и данные
- GET /map/api/config — конфиг для клиента (title, auths). Требуется сессия.
- GET /map/api/v1/characters — список персонажей на карте (требуется право
mapи при необходимостиmarkers). - GET /map/api/v1/markers — маркеры (требуется право
mapи при необходимостиmarkers). - GET /map/api/maps — список карт (с учётом прав и скрытых карт).
Админ (все эндпоинты ниже требуют право admin)
- GET /map/api/admin/users — список имён пользователей.
- POST /map/api/admin/users — создать/обновить пользователя. Тело:
{"user":"...","pass":"...","auths":["admin","map",...]}. - GET /map/api/admin/users/:name — данные пользователя.
- DELETE /map/api/admin/users/:name — удалить пользователя.
- GET /map/api/admin/settings — настройки (prefix, defaultHide, title).
- POST /map/api/admin/settings — сохранить настройки. Тело:
{"prefix":"...","defaultHide":true|false,"title":"..."}(поля опциональны). - GET /map/api/admin/maps — список карт для админки.
- POST /map/api/admin/maps/:id — обновить карту (name, hidden, priority).
- POST /map/api/admin/maps/:id/toggle-hidden — переключить скрытие карты.
- POST /map/api/admin/wipe — очистить гриды, маркеры, тайлы, карты в БД.
- POST /map/api/admin/rebuildZooms — пересобрать зум-уровни тайлов.
- GET /map/api/admin/export — скачать экспорт данных (ZIP).
- POST /map/api/admin/merge — загрузить и применить merge (ZIP с гридами и маркерами).
Дополнительные админ-действия (формы или внутренние вызовы): wipeTile, setCoords, hideMarker — см. реализацию в internal/app/api.go и admin.go.
Коды ответов
- 200 — успех.
- 400 — неверный запрос (метод, тело, параметры).
- 401 — не авторизован (нет или недействительная сессия).
- 403 — нет прав.
- 404 — не найдено.
- 500 — внутренняя ошибка.
Формат ошибок — текст в теле ответа или стандартные HTTP-статусы без тела.