説明なし
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

my_ETL_test.go 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package test
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "io"
  7. "net/http"
  8. "testing"
  9. "git.x2erp.com/qdy/go-base/config"
  10. "git.x2erp.com/qdy/go-base/ctx"
  11. "git.x2erp.com/qdy/go-svc-core/internal/model"
  12. )
  13. func TestETLConfigAPI_Simple(t *testing.T) {
  14. fmt.Println("=== 简单POST测试 ===")
  15. // 1. 创建测试数据(赋值)
  16. etlConfig := model.NewETLConfig(ctx.GetContextTest(), config.AgentDBArchivesId, config.DorisDatabaseName, "a_sku")
  17. sql := `SELECT CLOTHING_ID,CLOTHING_YEAR,CLOTHING_NAME FROM ( SELECT a.*, ROWNUM as rn FROM (
  18. SELECT CLOTHING_ID,CLOTHING_YEAR,CLOTHING_NAME
  19. FROM X6_STOCK_DEV.A3_CLOTHING
  20. ORDER BY CLOTHING_ID
  21. ) a
  22. WHERE ROWNUM <= :1
  23. ) WHERE rn > :2`
  24. etlConfig.AgentFullQuerySQL = sql
  25. fmt.Printf("测试数据: %v\n", etlConfig)
  26. // 2. 转换为JSON
  27. jsonData, err := json.Marshal(etlConfig)
  28. if err != nil {
  29. fmt.Printf("JSON转换错误: %v\n", err)
  30. return
  31. }
  32. fmt.Printf("JSON数据: %s\n", string(jsonData))
  33. // 3. 创建POST请求
  34. url := "http://localhost:9010/api/etl/config" // 你的服务端口
  35. // 创建请求
  36. req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
  37. if err != nil {
  38. fmt.Printf("创建请求失败: %v\n", err)
  39. return
  40. }
  41. // 设置请求头
  42. req.Header.Set("Content-Type", "application/json")
  43. req.Header.Set("Authorization", "Bearer 123") // 这里放你的真实token
  44. // 创建HTTP客户端并发送请求
  45. client := &http.Client{}
  46. resp, err := client.Do(req)
  47. if err != nil {
  48. fmt.Printf("POST请求失败: %v\n", err)
  49. return
  50. }
  51. defer resp.Body.Close()
  52. // 4. 读取响应
  53. body, err := io.ReadAll(resp.Body)
  54. if err != nil {
  55. fmt.Printf("读取响应失败: %v\n", err)
  56. return
  57. }
  58. // 5. 打印结果
  59. fmt.Printf("状态码: %d\n", resp.StatusCode)
  60. fmt.Printf("响应: %s\n", string(body))
  61. }