公共 API¶
Airflow 公共 API 認證¶
Airflow 公共 API 使用 JWT (JSON Web Token) 進行 API 請求認證。每個對 Airflow API 發出的請求都必須在 Authorization 頭部中包含一個有效的 JWT 令牌,以驗證客戶端的身份和許可權。
生成 JWT 令牌¶
要與 Airflow API 互動,客戶端必須首先認證並獲取一個 JWT 令牌。可以透過向 /auth/token 端點發送 POST 請求來生成令牌,並傳遞必要的憑據(例如,使用者名稱和密碼)。/auth/token 端點由 auth manager 提供,因此,請閱讀您環境中配置的 auth manager 的文件以獲取更多詳細資訊。
示例¶
請求
ENDPOINT_URL="https://:8080/"
curl -X POST ${ENDPOINT_URL}/auth/token \
-H "Content-Type: application/json" \
-d '{
"username": "your-username",
"password": "your-password"
}'
響應
{
"access_token": "<JWT-TOKEN>"
}
使用 JWT 令牌呼叫 Airflow 公共 API
ENDPOINT_URL="https://:8080/"
curl -X GET ${ENDPOINT_URL}/api/v2/dags \
-H "Authorization: Bearer <JWT-TOKEN>"
啟用 CORS¶
跨域資源共享 (CORS) 是一種瀏覽器安全特性,用於限制從瀏覽器中執行的指令碼發起的 HTTP 請求。
可以透過在 airflow.cfg 檔案的 [api] 部分設定 access_control_allow_headers、access_control_allow_methods 和 access_control_allow_origins 選項的值來新增 Access-Control-Allow-Headers、Access-Control-Allow-Methods 和 Access-Control-Allow-Origin 頭部。
[api]
access_control_allow_headers = origin, content-type, accept
access_control_allow_methods = POST, GET, OPTIONS, DELETE
access_control_allow_origins = https://exampleclientapp1.com https://exampleclientapp2.com
頁面大小限制¶
為了防止可能導致應用程式不穩定的請求,穩定版 API 對響應中的條目數量有限制。預設限制是 100 條,但您可以透過修改 airflow.cfg 檔案的 [api] 部分中的 maximum_page_limit 選項來更改此限制。