Just Fighting
[AirFlow] REST API 사용하기 본문
airflow는 rest api를 호출해서 사용할 수도 있다. 해보자!
JWT token 얻기
API를 사용하기 위해서는 JWT token이 필요하다.
JWT token : 두 개체(주로 클라이언트와 서버) 사이에서 정보를 안전하게 JSON 형태로 주고받기 위해 만들어진 웹 표준
아래의 명령어를 셸에 입력하면 JWT 토큰이 나온다.
그 토큰을 이용해 필요한 데이터를 요청하거나 특정 행동을 실행할 수 있다.
username과 password는 각각의 필요한 정보로 넣어주면 된다.
curl -X POST 'http://localhost:8080/auth/token' \
-H "Content-Type: application/json" \
-d '{
"username": "airflow",
"password": "airflow"
}'

DAG 리스트 확인하기
위에서 얻은 JWT 토큰을 활용해 DAG 리스트를 확인할 수있다.
아래 코드에서 JWT Token 자리에 얻은 토큰을 입력하면 된다.
curl -X GET 'http://localhost:8080/api/v2/dags' \
-H "Authorization: Bearer JWT Token"
DAG 실행하기
DAG를 실행할 수도 있다!
공식 홈페이지에서 확인할 수 있듯이, DAG를 실행시키기 위해선
dag_id와 logical_date가 필수적이다. 어떤 dag를 언제 실행 시킬 것이냐에 대한 정보이기 때문이다.

주소에는 DAG의 이름을 써주고, -d 옵션으로 logical_date를 넣어준다.
여기서 가장 중요한 건 -H "Content-Type: application/json" 을 넣어주는 것이다.
curl -X POST 'http://localhost:8080/api/v2/dags/DAG이름/dagRuns' -d '{"logical_date":"2026-02-19T07:15:22Z"}' \
-H "Authorization: Bearer JWT Token" -H "Content-Type: application/json"
curl -X POST 'http://localhost:8080/api/v2/dags/trigger_child_dag/dagRuns' -d '{"logical_date":"2026-02-19T07:15:22Z"}' \
-H "Authorization: Bearer eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxIiwianRpIjoiNmY1OGIxMWQxNmQ2NGQ2ZDg1MDNkMTAyMmQzZWVhZTciLCJpc3MiOltdLCJhdWQiOiJhcGFjaGUtYWlyZmxvdyIsIm5iZiI6MTc3MTQ4MjYyNywiZXhwIjoxNzcxNTY5MDI3LCJpYXQiOjE3NzE0ODI2Mjd9._L8e9P-vt-84BfOTHYBS7q5GEwvJ5MyhJbA-FlXNSEjuEm7HxpCY_w4hYF6Z2arFmlH-GYbm6xFgz095WkA_Xw" -H "Content-Type: application/json"
실행이 잘 된 것을 확인할 수 있다!

[참고]
https://stackoverflow.com/questions/79742043/airflow-3-0-0-rest-api-not-authenticated
