Обзор GraphQL API
Платформа MMO-DEV WEB предоставляет единый GraphQL API для сайтов, лаунчера и личного кабинета игрока.
Все клиентские запросы отправляются на один GraphQL endpoint проекта: /graphql. Клиент передаёт documentId и variables, а список разрешённых query/mutation описан в справочнике API.
Именованные GraphQL операции
В API-запросе указывайте имя документированной операции, например me, login, servers, shopOffers или preparePlayerWalletTopUp.
Примеры GraphQL в справочнике показывают структуру операции и доступные поля. В HTTP-запросе публичный клиент всё равно передаёт только documentId и variables.
Формат запроса
POST /graphql HTTP/1.1
Accept-Language: ru
Content-Type: application/json
Authorization: Bearer optional-session-id
X-Project-Context: <project-context-token>
X-Request-Id: optional-request-id
{
"documentId": "me",
"variables": {}
}
X-Project-Context берётся из identity.contextToken актуальной конфигурации проекта. Для переключения выбранного сервера используйте changeServer. Публичные каталоги и операции с явной целью принимают gameServerId в variables.
Формат ответа
Успешный ответ:
{
"data": {
"me": {
"id": "1",
"balance": 100
}
}
}
Ответ с ошибкой:
{
"errors": [
{
"message": "Описание ошибки",
"extensions": {
"category": "authentication"
}
}
],
"data": null
}
Скалярные типы
| Тип | Описание | Пример |
|---|---|---|
DateTime | Дата и время в формате Y-m-d H:i:s | 2024-01-15 13:43:32 |
JSON | Произвольные данные в формате JSON | {"key": "value"} |
ID | Уникальный идентификатор (строка) | "42" |
Float | Число с плавающей запятой | 99.5 |
Int | Целое число | 10 |
Boolean | Логическое значение | true |
String | Строка | "text" |