Airflow 2025 峰会将于 10 月 07-09 日举行。立即注册,享受早鸟票优惠!

公共 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="http://localhost: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="http://localhost:8080/"
curl -X GET ${ENDPOINT_URL}/api/v2/dags \
  -H "Authorization: Bearer <JWT-TOKEN>"

启用 CORS

跨域资源共享 (CORS) 是一种浏览器安全特性,用于限制从浏览器中运行的脚本发起的 HTTP 请求。

可以通过在 airflow.cfg 文件的 [api] 部分设置 access_control_allow_headersaccess_control_allow_methodsaccess_control_allow_origins 选项的值来添加 Access-Control-Allow-HeadersAccess-Control-Allow-MethodsAccess-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 选项来更改此限制。

此条目有帮助吗?