Skip to content

Общая информация

WARNING

Данный раздел в процессе обновления

API для общения лаунчера с лаунчсервером реализован с помощью библиотеки Aurora RPC.

Aurora RPC - это библиотека, которая реализует обмен информацией в формате клиент ↔ сервер с использованием методологии RPC поверх протокола WebSocket.

Обмен данными осуществляется в формате JSON, протокол обмена данных основан на спецификации JSON-RPC 2.0.

Сходства и различия с JSON-RPC

Протокол Aurora RPC основан на стандарте JSON-RPC 2.0. Он реализует аналогичную структуру запроса и ответа, за исключением отсутствия указания параметра jsonrpc:

ts
interface Request {
  id?: number | string; // Не обязательно для уведомлений
  method: string;
  params?: object | array; // Не обязательно для уведомлений
}

interface Response {
  id: number | string;
  result: object | array;
}

При возврате ошибки используется следующий тип:

ts
interface ResponseError {
  id: number | string;
  error: {
    code: number;
    message: string;
  };
}

Коды ошибок соответствуют тем, что используются в JSON-RPC:

Важно

Коды ошибок от -32768 до -32000 включительно зарезервированы для предварительно определенных ошибок. Любой код в этом диапазоне, но не определенный явным образом ниже, зарезервирован для будущего использования.

КодСообщениеЗначение
-32700Parse errorСервер получил недействительный JSON. На сервере произошла ошибка при разборе текста JSON.
-32600Invalid RequestОтправленный JSON не является действительным объектом запроса.
-32601Method not foundМетод не существует / недоступен.
-32602Invalid paramsНеверный параметр(ы) метода.
-32603Internal errorВнутренняя ошибка Aurora RPC.
-32500Response errorСтандартная ошибка запроса. Возвращается если не был определён свой код для ошибки.

Ниже будут перечислены методы API, доступные для использования в лаунчере.

Аутентификация

Для работы с API от лица лаунчера требуется пройти аутентификацию. Для этого нужно отправить запрос типа auth со следующим содержимым:

json
{
  "id": "00000000-0000-0000-0000-000000000000",
  "method": "auth",
  "params": {
    "login": "login123",
    "password": "password456"
  }
}

Ответ возвращается в следующем формате:

json
{
  "id": "00000000-0000-0000-0000-000000000000",
  "result": {
    "login": "login123",
    "userUUID": "00000000-0000-0000-0000-000000000000",
    "accessToken": "00000000-0000-0000-0000-000000000000"
  }
}

При использовании RejectProvider вы получаете стандартный ResponseError:

json
{
  "id": "00000000-0000-0000-0000-000000000000",
  "error": {
    "code": 200,
    "message": "Auth rejected"
  }
}

Возвращаемое сообщение можно переопределить в конфиге лаунчер-сервера.