公共 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_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
选项来更改此限制。