Я пытаюсь активировать воздушные потоки, следуя https://airflow.apache.org/docs/stable/api.html этому сайту. Они предоставили команду curl curl -X POST \
http://localhost:8080/api/experimental/dags/<DAG_ID>/dag_runs \
-H 'Cache-Control: no-cache' \
-H 'Content-Type: application/json' \
-d '{"conf":"{\"key\":\"value\"}"}'
для запуска Dag. Это работает, когда я выполняю эту команду из моей оболочки.
Я пытался вызвать эту конечную точку в Go POST /api/experimental/dags/<DAG_ID>/dag_runs
и получаю 400 Bad Request
Как использовать POST /api/experimental/dags/<DAG_ID>/dag_runs
как http.POST()
или http.NewRequest()
в Go?
Я пробовал это:
package main
import (
"encoding/json"
"fmt"
"net/http"
"strings"
)
func main(){
body := strings.NewReader(`{"conf":"{\"key\":\"value\"}"}`)
req, err := http.NewRequest("POST", "http://localhost:8080/api/experimental/dags/airflow_sample/dag_runs", body)
if err != nil {
fmt.Println(err)
}
req.Header.Set("Cache-Control", "no-cache")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
fmt.Println(err)
}
fmt.Println(resp)
defer resp.Body.Close()
}