APIを使用してData Explorerクエリを作成する

Data Explorer クエリを API で作成する

:bookmark: このハウツーガイドでは、Discourse API を使用して Data Explorer クエリを作成する方法を説明します。

:person_raising_hand: 必要なユーザーレベル: 管理者

前提条件

始める前に、以下のものがあることを確認してください。

:information_source: クエリの作成にはグローバル API キーが必要です。きめ細かな「クエリの実行」スコープでは、既存のクエリを実行することのみが可能で、新しいクエリを作成することはできません。

クエリの作成

新しい Data Explorer クエリを作成するには、/admin/plugins/discourse-data-explorer/queriesPOST リクエストを送信します。

パラメータ

パラメータ 必須 説明
query[name] はい クエリの名前
query[sql] はい 実行する SQL ステートメント
query[description] いいえ クエリが何をするかの説明
query[group_ids] いいえ このクエリにアクセスできるグループ ID の配列

リクエストの例

curl -X POST "https://your-site.com/admin/plugins/discourse-data-explorer/queries" \
  -H "Content-Type: multipart/form-data;" \
  -H "Api-Key: \u003capi-key\u003e" \
  -H "Api-Username: \u003cusername\u003e" \
  -F 'query[name]=User count query' \
  -F 'query[sql]=SELECT COUNT(*) FROM users'

レスポンスの例

{
  "query": {
    "id": 49,
    "name": "User count query",
    "description": null,
    "username": "\u003cusername\u003e",
    "group_ids": [],
    "last_run_at": "2025-03-13T18:41:44.226Z",
    "user_id": 1,
    "is_default": false,
    "sql": "SELECT COUNT(*) FROM users",
    "param_info": [],
    "created_at": "2025-03-13T18:41:44.226Z",
    "hidden": false
  }
}

レスポンス内の id 値に注目してください。これはクエリを実行するために必要になります。API を介したクエリの実行方法の詳細については、Discourse API で Data Explorer クエリを実行するを参照してください。

「いいね!」 6

APIコールのパスを変更して、私のクエリを壊したのですか!?以前は/admin/plugins/explorer/queries/3/runでしたが、突然GitHubアクションが失敗し始めました。これはあまり親切ではないように思えます。

「いいね!」 3

当社のツールは、そのパスの変更と、かつては十分だったリードオンリー API キーではなく、グローバル API キーを要求するようになったことによって動作しなくなりました。

それは迷惑でしたね。

それはバグのようです。