我正在学习 Grafana,以及如何在 Powershell 中与 API 交互。我能够使用 Grafana HTTP API 创建仪表板,但是我无法获得相同的 API 来创建数据源。我的代码如下:
$header = @{"Authorization" = "Bearer apikey="}
$createDatasourceUri = "http://localhost:3000/api/datasources"
$createDatasourcejson = @'
{
"datasource": {
"name": "prometheusApiTest",
"type": "prometheus",
"url": "http://localhost:9090",
"access": "proxy",
"basicAuth": false,
"isDefault": true
}
}
'@
$datasourceParameters = @{
Method = "POST"
URI = $createDatasourceUri
Body = $createDatasourcejson
Headers = $header
ContentType = "application/json"
}
Invoke-RestMethod @datasourceParameters
我收到以下错误:
Invoke-RestMethod : [{"fieldNames":["Name"],"classification":"RequiredError","message":"Required"},{"fieldNames":["Type"],"classification":"RequiredError","message":"Required"},{"fieldNames":["Access"],"classificat
ion":"RequiredError","message":"Required"}]
我不知道发生了什么事。我能找到的关于这个错误的任何信息都表明我需要将 ContentType 指定为“application/json”,但我已经非常清楚地这样做了。当我在该 API 端点上执行“GET”时,我确实收到了数据,即使复制返回的数据仍然会导致上述错误。我完全不知所措,因为同样的代码可以创建仪表板(尽管仪表板具有正确的 json 有效负载)。有任何想法吗?