如何在 PHP 中设置 GraphQL 变量

问题描述 投票:0回答:1

我正在使用 FXHash API 通过此查询访问列表:

query Listings($sort: ListingsSortInput) {
  listings(sort: $sort) {
    amount
    createdAt
    price
    issuer {
      name
    }
    objkt {
      name
    }
  }
}
$options = '{
  "sort": {
    "createdAt": "DESC"
  }
}';

我想在 PHP 中使用上面的查询,并使用 createAt 选项进行排序。如何使用排序选项将此查询放入我的 cURL 中?我不明白如何将 $options 变量添加到查询中。感谢您的帮助!

$url = 'https://api.fxhash.xyz/graphql';    

$curl = curl_init();
$queryData = array();
$data = array();

$queryData = '{
  listings {
    amount
    createdat
    price
    issuer {
        name
    }
    objkt {
      name
    }
  }
}';

$data["query"] = $queryData;

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($curl, CURLOPT_HEADER, FALSE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
  'Content-Type: application/json'
));
php json variables curl graphql
1个回答
2
投票

您必须将 POST 请求变量添加为 JSON 映射。

尝试这样的事情:

$queryData = 'query Listings($sort: ListingsSortInput) {
  listings(sort: $sort) {
    amount
    createdAt
    price
    issuer {
      name
    }
    objkt {
      name
    }
  }
}';
$options = '{
  "sort": {
    "createdAt": "DESC"
  }
}';
$data["query"] = $queryData;
$data["variables"] = $options;
© www.soinside.com 2019 - 2024. All rights reserved.