プレーンな curl でクエリを送ると、結果を切り分けて加工したり、必要に応じて後処理したりできます。たとえば、GraphQL API から受け取った結果を CSV 形式に変換できます。
自動補完やスキーマの探索など、より多くの機能が必要な場合は、GraphQL の クライアント を参照してください。
GraphQL API は、必須フィールドが 2 つある JSON を期待します。"query" と "variables" です。
クエリは改行を取り除き、1 行の文字列として送ります。variables は、クエリ内のすべてのプレースホルダーに対する値を持つオブジェクトです。
{
"query": "{viewer { ... }}",
"variables": {}
}読みやすいクエリを使うこともできます。次の例では、echo と tr をパイプでつなぎ、curl に適切なペイロードを渡しています。
echo '{ "query":
"{
viewer {
zones(filter: { zoneTag: $zoneTag }) {
firewallEventsAdaptive(
filter: $filter
limit: 10
orderBy: [datetime_DESC]
) {
action
clientAsn
clientCountryName
clientIP
clientRequestPath
clientRequestQuery
datetime
source
userAgent
}
}
}
}",
"variables": {
"zoneTag": "<zone-tag>",
"filter": {
"datetime_geq": "2022-07-24T11:00:00Z",
"datetime_leq": "2022-07-24T12:00:00Z"
}
}
}' | tr -d '\n' | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data @-