API
API 认证
所有 API 调用都支持使用 API 密钥进行身份验证。Redash 有两种类型的 API 密钥
- 用户 API 密钥:具有与其所有者用户相同的权限。可以在用户个人资料页面上找到。
- 查询 API 密钥:仅有权访问查询及其结果。可以在查询页面上找到。
在可能的情况下,我们建议使用查询 API 密钥。
使用 Python 访问
我们提供了一个 Redash API 的轻量级包装器,称为 redash-toolbelt
。它正在开发中。源代码托管在 Github 上。该仓库中的 examples
文件夹包含有用的演示,例如
常用端点
以下是截至 V9 的 Redash API 端点的不完整列表。这些可能会在未来版本的 Redash 中更改。
每个端点都附加到您的 Redash 基本 URL。例如
https://app.redash.io/<slug>
https://redash.example.com
查询
/api/queries
- GET:返回分页的查询对象数组。
- 包含非参数化查询的最新
query_result_id
。
- 包含非参数化查询的最新
- POST:创建一个新的查询对象
/api/queries/<id>
- GET:返回单个查询对象
- POST:编辑现有的查询对象。
- DELETE:归档此查询。
/api/queries/<id>/results
- GET:获取此查询 ID 的缓存结果。 - 仅适用于非参数化查询。如果您尝试获取参数化查询的结果,您将收到错误:`找不到此查询的缓存结果`
。请参阅此端点的 POST 说明,以获取参数化查询的结果。
- POST:启动新的查询执行或返回缓存的结果。- API 优先返回缓存的结果。如果缓存的结果不可用,则会启动新的执行作业并返回作业对象。要绕过过时的缓存,请包含一个
max_age
键,该键是秒数的整数。如果缓存结果早于max_age
,则将忽略缓存并开始新的执行。如果将max_age
设置为0
,则保证新的执行。- 如果传递参数,则必须将其作为parameters
对象包含在 JSON 请求正文中。
这是一个包含不同参数类型的 JSON 对象示例
{
"parameters": {
"number_param": 100,
"date_param": "2020-01-01",
"date_range_param": {
"start": "2020-01-01",
"end": "2020-12-31"
}
},
"max_age": 1800
}
作业
/api/jobs/<job_id>
- GET:返回查询任务结果(作业)
- 可能的状态
- 1 == PENDING(等待执行)
- 2 == STARTED(正在执行)
- 3 == SUCCESS
- 4 == FAILURE
- 5 == CANCELLED
- 当状态为成功时,该作业将包含
query_result_id
- 可能的状态
查询结果
/api/query_results/<query_result_id>
- GET:返回查询结果
- 在此请求中附加
.csv
或.json
文件类型将返回可下载的文件。如果您在查询字符串中附加api_key
,则此链接将适用于未登录的用户。
- 在此请求中附加
仪表板
/api/dashboards
- GET:返回分页的仪表板对象数组。
- POST:创建一个新的仪表板对象
/api/dashboards/<dashboard_slug>
- GET:返回单个仪表板对象。
- DELETE:归档此仪表板
/api/dashboards/<dashboard_id>
- POST:编辑现有的仪表板对象。