如何在php中构造graphql变异查询请求

时间:2017-06-06 19:26:19

标签: php graphql apollo apollo-server

我正在努力弄清楚如何在php中正确格式化graphql api变异POST请求。

如果我对字符串进行硬编码并将其用作POST请求中的数据,则其工作方式如下: '{"query":"mutation{addPlay(input: {title: \"two\"}){ properties { title } } }"}'

但是如果我有一个输入值的php数组:

$test_data = array(
  'title' => 'two'
);

我似乎无法正确格式化。 json_encode还在graphql拒绝的键周围加上双引号,错误为Syntax Error GraphQL request (1:26) Expected Name, found String

我最终需要一个解决方案,将更大更复杂的数组转换为可用的数组。

1 个答案:

答案 0 :(得分:1)

重新格式化查询允许我直接使用JSON。

所以我的新查询看起来像这样:

$test_data = array(
  'title' => 'two'
);

$request_data = array(
  'query' => 'mutation ($input: PlayInput) { addPlay(input: $input) { properties { title } }}',
  'variables' => array(
    'input' => $test_data,
  ),
);

$request_data_json = json_encode($request_data);

然后在POST http请求中使用$request_data_json