API Документація
.auto-style-9 { line-height: 1.8; }Базовий URL
.auto-style-12 { display: block; padding: 0.75rem; background: var(--bg-dark); border-radius: 0.375rem; color: var(--success-color); font-family: 'Courier New', monospace; }
https://gghost.fun/api
Аутентифікація
.auto-style-15 { color: var(--text-primary); margin-bottom: 1rem; }
Більшість API endpoints вимагають аутентифікації через сесійні cookies.
.auto-style-16 { background: var(--bg-hover); padding: 0.25rem 0.5rem; border-radius: 0.25rem; }
Авторизуйтеся через POST /api/auth/login
перед використанням захищених endpoints.
Основні Endpoints
.auto-style-19 { margin-bottom: 2rem; }Авторизація
.auto-style-21 { padding: 1rem; background: var(--bg-secondary); border-radius: 0.5rem; margin-bottom: 1rem; }POST /api/auth/login
.auto-style-23 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Вхід в систему. Параметри: email, password
POST /api/auth/register
.auto-style-26 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Реєстрація нового користувача. Параметри: email, password, name
GET /api/auth/me
.auto-style-29 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати інформацію про поточного користувача
Сервери
.auto-style-32 { padding: 1rem; background: var(--bg-secondary); border-radius: 0.5rem; margin-bottom: 1rem; }GET /api/servers
.auto-style-34 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати список серверів поточного користувача
GET /api/servers/:id
.auto-style-37 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати інформацію про конкретний сервер. Query параметр: ?skipStatusCheck=true
POST /api/servers/:id/start
.auto-style-40 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Запустити сервер
POST /api/servers/:id/stop
.auto-style-43 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Зупинити сервер
POST /api/servers/:id/restart
.auto-style-46 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Перезапустити сервер
GET /api/servers/:id/console-logs
.auto-style-49 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати логи консолі сервера
Налаштування сервера
.auto-style-52 { padding: 1rem; background: var(--bg-secondary); border-radius: 0.5rem; margin-bottom: 1rem; }GET /api/servers/:id/settings
.auto-style-54 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати налаштування сервера
POST /api/servers/:id/settings/name
.auto-style-57 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Змінити назву сервера. Body: { serverName }
POST /api/servers/:id/settings/map
.auto-style-60 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Змінити карту. Body: { map }
POST /api/servers/:id/settings/maxplayers
.auto-style-63 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Змінити кількість слотів. Body: { maxPlayers, calculatedCost }
Консоль та гравці
.auto-style-66 { padding: 1rem; background: var(--bg-secondary); border-radius: 0.5rem; margin-bottom: 1rem; }POST /api/servers/:id/console
.auto-style-68 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Відправити команду в консоль. Body: { command }
GET /api/servers/:id/players
.auto-style-71 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати список гравців на сервері
GET /api/servers/:id/maps
.auto-style-74 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати список доступних карт
Файли
.auto-style-77 { padding: 1rem; background: var(--bg-secondary); border-radius: 0.5rem; margin-bottom: 1rem; }GET /api/servers/:id/files/list
.auto-style-79 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Отримати список файлів. Query: ?path=/path/to/directory
GET /api/servers/:id/files/read
.auto-style-82 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Прочитати файл. Query: ?path=/path/to/file
POST /api/servers/:id/files/write
.auto-style-85 { color: var(--text-secondary); font-size: 0.875rem; margin: 0.5rem 0 0 0; }
Записати файл. Body: { path, content }
Формат відповіді
.auto-style-88 { color: var(--text-primary); margin-bottom: 1rem; }
.auto-style-89 { background: var(--bg-hover); padding: 0.25rem 0.5rem; border-radius: 0.25rem; }
API повертає дані у форматі JSON. У разі помилки повертається об'єкт з полем error.
{
"success": true,
"data": { ... }
}
// Помилка:
{
"error": "Повідомлення про помилку",
"details": "Деталі помилки (опціонально)"
}
Приклад використання
.auto-style-94 { padding: 1rem; background: var(--bg-dark); border-radius: 0.375rem; margin-bottom: 1rem; font-family: 'Courier New', monospace; font-size: 0.875rem; overflow-x: auto; }// JavaScript (fetch)
const response = await fetch('/api/servers', {
credentials: 'include'
});
const servers = await response.json();
Більш детальну інформацію про API можна отримати, переглянувши вихідний код або звернувшись до підтримки.