Общая информация
WARNING
Данный раздел в процессе обновления
API для общения лаунчера с лаунчсервером реализован с помощью библиотеки Aurora RPC.
Aurora RPC - это библиотека, которая реализует обмен информацией в формате клиент ↔ сервер с использованием методологии RPC поверх протокола WebSocket.
Обмен данными осуществляется в формате JSON, протокол обмена данных основан на спецификации JSON-RPC 2.0.
Сходства и различия с JSON-RPC
Протокол Aurora RPC основан на стандарте JSON-RPC 2.0. Он реализует аналогичную структуру запроса и ответа, за исключением отсутствия указания параметра jsonrpc
:
interface Request {
id?: number | string; // Не обязательно для уведомлений
method: string;
params?: object | array; // Не обязательно для уведомлений
}
interface Response {
id: number | string;
result: object | array;
}
При возврате ошибки используется следующий тип:
interface ResponseError {
id: number | string;
error: {
code: number;
message: string;
};
}
Коды ошибок соответствуют тем, что используются в JSON-RPC:
Важно
Коды ошибок от -32768 до -32000 включительно зарезервированы для предварительно определенных ошибок. Любой код в этом диапазоне, но не определенный явным образом ниже, зарезервирован для будущего использования.
Код | Сообщение | Значение |
---|---|---|
-32700 | Parse error | Сервер получил недействительный JSON. На сервере произошла ошибка при разборе текста JSON. |
-32600 | Invalid Request | Отправленный JSON не является действительным объектом запроса. |
-32601 | Method not found | Метод не существует / недоступен. |
-32602 | Invalid params | Неверный параметр(ы) метода. |
-32603 | Internal error | Внутренняя ошибка Aurora RPC. |
-32500 | Response error | Стандартная ошибка запроса. Возвращается если не был определён свой код для ошибки. |
Ниже будут перечислены методы API, доступные для использования в лаунчере.
Аутентификация
Для работы с API от лица лаунчера требуется пройти аутентификацию. Для этого нужно отправить запрос типа auth
со следующим содержимым:
{
"id": "00000000-0000-0000-0000-000000000000",
"method": "auth",
"params": {
"login": "login123",
"password": "password456"
}
}
Ответ возвращается в следующем формате:
{
"id": "00000000-0000-0000-0000-000000000000",
"result": {
"login": "login123",
"userUUID": "00000000-0000-0000-0000-000000000000",
"accessToken": "00000000-0000-0000-0000-000000000000"
}
}
При использовании RejectProvider вы получаете стандартный ResponseError:
{
"id": "00000000-0000-0000-0000-000000000000",
"error": {
"code": 200,
"message": "Auth rejected"
}
}
Возвращаемое сообщение можно переопределить в конфиге лаунчер-сервера.