Дима, как я говорил, надо именно 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 в моем примере запрашивает только тех пользователей, которые создали хоть одно заведение.