go20/devops/agent/client/README.md
2026-03-29 18:07:57 +08:00

2.8 KiB
Raw Blame History

使用HTTP客户端 调用API Server

基于Curl 命令的调试方式

  • 任务执行
curl --location 'http://127.0.0.1:8848/api/devops_agent/v1/tasks' \
--header 'Content-Type: application/json' \
--data '{
    "name": "task_debug",
    "input_params": {}
}'
  • 查询任务执行结果
curl --location 'http://127.0.0.1:8848/api/devops_agent/v1/tasks/6a75c2d0-7bdb-4f35-895a-fde49f8f7e93/result'
  • 查询任务执行日志
curl --location 'http://127.0.0.1:8848/api/devops_agent/v1/tasks/6a75c2d0-7bdb-4f35-895a-fde49f8f7e93/log?offset=20&limit=10'

基于Go代码来发起HTTP请求

  • 任务执行
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "http://127.0.0.1:8848/api/devops_agent/v1/tasks"
  method := "POST"

  payload := strings.NewReader(`{
    "name": "task_debug",
    "input_params": {}
}`)


 // 初始化一个http client对象
  client := &http.Client {
  }

  // 准备 HTTP请求参数
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")

  // 基于这个Req发起HTTP请求
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  // 读取返回的结果
  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
  • 查询任务执行结果
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "http://127.0.0.1:8848/api/devops_agent/v1/tasks/6a75c2d0-7bdb-4f35-895a-fde49f8f7e93/result"
  method := "GET"

  client := &http.Client {
  }

  // 准备HTTP 请求
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }

  // 发起HTTP请求
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  // 读取结果
  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
  • 查询任务执行日志
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "http://127.0.0.1:8848/api/devops_agent/v1/tasks/6a75c2d0-7bdb-4f35-895a-fde49f8f7e93/log?offset=20&limit=10"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

基于 http.Client 封装一个 SDK(Agent Client 对象)

  • 任务执行
  • 查询任务执行结果
  • 查询任务执行日志