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

Формат запроса

Все GraphQL-запросы выполняются методом POST на /graphql и передают ID разрешённого документа из справочника API.

Ключевые термины этого раздела: documentId, variables, Context token и X-Project-Context.

Тело запроса​

Тело GraphQL-запроса
{
"documentId": "me",
"variables": {}
}
ПолеТипОписание
documentIdStringID query/mutation из справочника API
variablesObjectПеременные операции. Если переменных нет, передайте {}

Примеры в справочнике показывают полный набор переменных операции, включая необязательные поля. Необязательные поля можно не отправлять, если сценарий их не использует.

Для выполнения сценария передавайте ID документа и его переменные в формате ниже.

Обязательные заголовки​

ЗаголовокОписание
Accept-LanguageПредпочтительные языки ответа в стандартном HTTP-формате, например ru-RU, ru;q=0.9, en;q=0.8
Content-TypeВсегда application/json
X-Project-ContextЗначение identity.contextToken из конфигурации проекта
X-Request-IdID запроса для трассировки и обращения в поддержку

Контекстные заголовки​

ЗаголовокОписание
AuthorizationBearer <sessionId> для авторизованного пользователя

Используйте identity.contextToken из загруженной конфигурации проекта без изменений. Для авторизованных операций дополнительно передаётся Authorization: Bearer <sessionId>.

Авторизованные операции используют выбранный сервер; для переключения вызовите changeServer. Публичные каталоги и операции с явной целью принимают gameServerId в variables.

Примеры запроса​

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

Запрос
POST /graphql
POST /graphql HTTP/1.1
Accept-Language: ru
Content-Type: application/json
X-Project-Context: <project-context-token>
X-Request-Id: optional-request-id

{
"documentId": "me",
"variables": {}
}
Ответ
200 OK
{
"data": {
"me": {
"id": 1,
"email": "[email protected]"
}
}
}
curl
curl -X POST https://project.example/graphql \
-H "Accept-Language: ru" \
-H "Content-Type: application/json" \
-H "X-Project-Context: <project-context-token>" \
-H "X-Request-Id: optional-request-id" \
-d '{"documentId":"me","variables":{}}'

API учитывает приоритеты Accept-Language и региональные теги. Если подходящий язык не опубликован проектом, используется язык профиля, язык проекта или en.