2.8 KiB
2.8 KiB
使用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 对象)
- 任务执行
- 查询任务执行结果
- 查询任务执行日志