Дима, как я говорил, надо именно POST-запросы слать. GET-это возвращает HTML самого API-интерфейса. Более того, слать надо с заголовками json. Вот рабочий пример (выполняется через MODX-console)
<?php
print "<pre>";
$query = '
query users (
$first: Int = 3
$orderBy: UserOrderByInput = createdAt_DESC
$where: UserWhereInput
$withPlaces: Boolean = false
){
users(
first: $first
orderBy: $orderBy
where: $where
){
...user
Places(
first: 3
) @include(if: $withPlaces)
{
id
name
}
}
}
fragment user on User{
id
user_id
username
fullname
email
}
';
$params = [
"query" => $query,
"variables" => [
"first" => 1,
"orderBy" => "fullname_ASC",
"withPlaces" => true,
"where" => [
"Places_some" => []
],
],
];
$client = $modx->getService('rest.modRestCurlClient');
$result = $client->request('https://pivkarta.ru', '/api/', 'POST', $params, [
"contentType" => "json",
]);
// print_r($result);
$result = json_decode($result, true);
print_r($result);
Обрати внимание, я в запрос прописал параметры $first и $orderBy со значениями по умолчанию. Теперь эти параметры можно передавать в запросе (см. variables).
Я еще улучшил по ходовой запрос, добавив для примера конструкцию @include(if: $withPlaces). Если передать параметр withPlaces = true, то будут получены еще и данные заведений пользователя. Если нет, то соответственно нет. А where в моем примере запрашивает только тех пользователей, которые создали хоть одно заведение.