PowerShell GraphQL突变解析错误

时间:2020-05-22 17:04:49

标签: powershell graphql

我正在查询Monday API v2(https://monday.com/developers/v2),我无法使PowerShell查询正常工作,脚本如下:

[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
    $url = "https://api.monday.com/v2/"
    $hdr = @{ }
    $hdr.Add("Authorization", "redacted")
    $hdr.Add("Content-Type", "application/json")

    $bodytxt = '{"query":"mutation{change_column_value (board_id: 528033866, item_id: 574335355, column_id: \"status_1\", value: "{\"index\": 1}") {id}}"}'
    $response = Invoke-WebRequest -Uri $url -Headers $hdr -Method Post -body $bodytxt
    Write-Host $response 

并且不断返回

{"errors":[{"message":"Parse error on \": 1}\" (STRING) at [1, 110]","locations":[{"line":1,"column":110}]}],"account_id":5305133}

Postman中的突变查询工作正常

change_column_value (board_id: 528033866, item_id: 574335355, column_id: "status_1", value: "{\"index\": 1}"){id}
}

我曾尝试处理哪些引号已转义,但我仍然无法使其成功运行。我在这里参考了提示https://www.reddit.com/r/PowerShell/comments/b9jasa/query_graphql_with_powershell/

关于如何解决此错误的任何想法?

编辑:对不起,忘记添加通过Powershell正常运行的当前查询(不是突变)

$bodytxt = '{"query":"{  boards (ids: 528033866) {    groups (ids: \"group_title\"){        items () {            id            name       updates () {  body }     column_values () {        id        title        value    text  }        }        title    }    }  }"}'

1 个答案:

答案 0 :(得分:0)

创建GraphQL查询的最简单方法是

  1. 使用HERE-STRINGS创建哈希表
  2. 使用ConvertTo-Json将其转换为JSON字符串。
$bodytxt = @{"query" = @'
  mutation {
    change_column_value(
      board_id: 123123
      item_id: 456456
      column_id: "status1"
      value: "{\"index\":1}"
    ) {
      id
    }
  }
'@
} | ConvertTo-Json

@'...'@中的空白是可选的。


回复this comment

它应该始终在GraphQL的API调用中工作吗?

我认为这取决于服务,但是在大多数情况下,是的。 application/json是请求正文的GraphQL默认内容类型。

monday.com

请确保使用application / json内容类型