Перейти к основному содержимому

Обзор 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",
"email": "[email protected]",
"balance": 100
}
}
}

Ответ с ошибкой:

{
"errors": [
{
"message": "Описание ошибки",
"extensions": {
"category": "authentication"
}
}
],
"data": null
}

Скалярные типы​

ТипОписаниеПример
DateTimeДата и время в формате Y-m-d H:i:s2024-01-15 13:43:32
JSONПроизвольные данные в формате JSON{"key": "value"}
IDУникальный идентификатор (строка)"42"
FloatЧисло с плавающей запятой99.5
IntЦелое число10
BooleanЛогическое значениеtrue
StringСтрока"text"