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 的快取結果。- 僅適用於非參數化查詢。如果您嘗試取得參數化查詢的結果,您會收到錯誤訊息:`no cached result found`
for this query`。請參閱此端點的 POST 指令以取得參數化查詢的結果。
- POST:啟動新的查詢執行或返回快取結果。- API 優先返回快取結果。如果沒有可用的快取結果,則會開始新的執行作業並返回作業物件。若要略過過期的快取,請包含一個
max_age
金鑰,其為秒數的整數。如果快取結果早於max_age
,則會忽略快取並開始新的執行。如果您將max_age
設定為0
,這會保證新的執行。- 如果傳遞參數,則必須將其包含在 JSON 請求主體中作為parameters
物件。
以下是一個包含不同參數類型的 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:編輯現有的儀表板物件。