curlを使ってGraphQLクエリを実行する
プレーンなcurlを使用してクエリを送信することで、結果をスライスしたりダイスしたりし、必要に応じて後処理を適用することができます。例えば、GraphQL APIから受け取った結果をCSV形式に変換することができます。
自動補完やスキーマ探索など、より多くの機能が必要な場合は、GraphQLのクライアントを検討してください。
GraphQL APIは、“query”と”variables”の2つの必須フィールドを持つJSONを期待します。
クエリは改行記号を取り除き、クエリで使用されるすべてのプレースホルダーの値で満たされたオブジェクトとして変数がある場合、1行の文字列として送信する必要があります。
{ "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 @-