如何使用 API 创建数据浏览器查询?

我正在使用数据浏览器和 API 创建查询。我很难找到创建查询的实际 API 调用。

有一个运行查询的端点 /admin/plugins/explorer/queries/<query_id>/run;但是,我没有看到创建它的方法。

有人能帮忙吗?

您尝试过逆向工程 Discourse API吗?

1 个赞

感谢分享Reverse engineer the discourse API的文章;

我已经阅读了它,并意识到需要进行两次单独的调用。

首先,应该向 /admin/plugins/explorer/queries 发送 POST 调用,这将生成与查询关联的 ID。

其次,需要对 /admin/plugins/explorer/queries/id 发送 PUT 调用来编辑默认查询。

但是我想知道是否可以直接通过一次 API 调用来创建查询(而无需知道 ID)。

如果可能,请告知我。

您应该能够使用与 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 个赞