APIを使用してデータエクスプローラークエリを作成する方法

API を使用してデータ エクスプローラーでクエリを作成しようとしていますが、クエリを作成するための実際の API コールを見つけるのに苦労しています。

クエリを実行するためのエンドポイント /admin/plugins/explorer/queries/\u003cquery_id\u003e/run はありますが、作成する方法が見つかりません。

どなたか助けていただけますか?

Discourse APIのリバースエンジニアリングを試しましたか?

「いいね!」 1

Reverse engineer the discourse API の記事を共有していただきありがとうございます。

確認したところ、2つの別々の呼び出しを行う必要があることがわかりました。

1つ目は、POST呼び出しを /admin/plugins/explorer/queries に対して行い、クエリに関連付けられたIDを生成します。

2つ目は、PUT呼び出しを /admin/plugins/explorer/queries/id に対して行い、デフォルトのクエリを編集します。

しかし、IDを知ることなく、単一のAPI呼び出しを行うことでクエリを作成する機能があるかどうか疑問に思っています。

それが可能かどうか教えてください。

PUT と同じペイロード値で POST リクエストを実行できるはずです。試しましたか?

「いいね!」 1

POST API呼び出しで試したクエリは以下の通りです。

curl -X POST https://api-discourse-XXXXXXXXXXXXX/admin/plugins/explorer/queries \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: 46811cc32XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H "Api-Username: abcdefg2" \
-F 'query={"name":"test1234", "sql":"SELECT * FROM topics"}'

しかし、以下のようなエラーが発生しています。

{"status":500,"error":"Internal Server Error"}%

何が問題なのか分かりません。

正しい方法は以下の通りだと思います。

-F 'query[name]=test1234'
-F 'query[sql]=SELECT * FROM topics'
「いいね!」 2

@Arkshine、ご協力ありがとうございました。

うまくいきました..!!

「いいね!」 1