wg-easy-api
v2.1.0
Published
Wg-easy api NodeJS
Maintainers
Readme
WireGuard API Клиент
Русский | English
Надежная библиотека клиента на Node.js для взаимодействия с API WireGuard, разработанная для серверов WG-Easy.
Содержание
- О проекте
- Функции
- Установка
- Требования
- Использование
- Методы API
- Формат ответа
- Советы по отладке
- Вклад
- Лицензия
- Список изменений
О проекте
Эта библиотека предоставляет программный интерфейс для API WireGuard, реализованного в WG-Easy.
Функции
- Автоматическое управление сессиями с повторными попытками при ошибках 401.
- Полное покрытие конечных точек API WG-Easy.
- Гибкая аутентификация через пароль или куки.
- Структурированная обработка ошибок.
- Поддержка TypeScript.
Установка
Установите через npm:
npm install wg-easy-api
Требования
- Node.js 12.x или выше.
- node-fetch (^2.7.0) - Включено как зависимость.
- Запущенный сервер WG-Easy (обычно на порту 51821).
Использование
Базовый пример с паролем:
const WireGuardAPI = require('wg-easy-api');
async function example() {
const api = new WireGuardAPI('https', 'example.com', 51821, 'your-password');
try {
const auth = await api.initSession({ password: 'your-password' });
const clients = await api.getClients();
console.log('Clients:', JSON.stringify(clients, null, 2));
} catch (error) {
console.error('Error:', JSON.parse(error.message));
}
}
example();Использование куки:
const api = new WireGuardAPI('https', 'example.com', 51821, undefined, 'connect.sid=s%3A...');
const clients = await api.getClients();
console.log(clients);Обработка ошибок:
try {
const clients = await api.getClients();
} catch (error) {
const err = JSON.parse(error.message);
console.error(err.error, err.statusCode);
}Методы API
Все методы возвращают Promise, разрешающийся в { status, data|error, [statusCode], [details] }.
Управление сессиями
initSession({ password })
Вход на сервер WG-Easy с паролем. Автоматически обновляет куки.- Параметры: { password: string } - Пароль WG-Easy.
- Возвращает: { status: 'success', data: any } или ошибка (например, 401 при неверном пароле).
- Пример:
await api.initSession({ password: 'мойПароль' }); // { status: 'success', data: { success: true } }
getSession()
Проверяет статус текущей сессии.- Возвращает: { status: 'success', data: { authenticated: boolean } } или ошибка.
- Пример:
await api.getSession(); // { status: 'success', data: { authenticated: true } }
Формат ответа
- Успех: { status: 'success', data: any }
- Ошибка: { status: 'error', error: string, statusCode: number, details: any }
Советы по отладке
- Проверьте protocol, ip, port в конструкторе.
- Запишите api.cookies после initSession.
- Тестируйте с помощью curl для проверки ответов сервера.
Вклад
Форкните и создайте пулл-реквест на GitHub.
Лицензия
MIT © fluxnetru.
