Compare commits

...

3 Commits

Author SHA1 Message Date
zhangkun9038@dingtalk.com
75b949a50e Get chagnes to GetCandles 2025-03-05 22:33:33 +08:00
zhangkun9038@dingtalk.com
f3e1506f2f Get chagnes to GetCandles 2025-03-05 22:26:30 +08:00
zhangkun9038@dingtalk.com
bd2354b81e Get chagnes to GetCandles 2025-03-05 22:21:00 +08:00

View File

@ -44,18 +44,51 @@ type RESTAPIResult struct {
TotalUsedTime time.Duration `json:"totalUsedTime"` TotalUsedTime time.Duration `json:"totalUsedTime"`
} }
// ResponseData 定义统一的响应数据接口
type ResponseData interface {
GetCode() string
GetMsg() string
GetData() interface{}
}
type Okexv5APIResponse struct { type Okexv5APIResponse struct {
Code string `json:"code"` Code string `json:"code"`
Msg string `json:"msg"` Msg string `json:"msg"`
Data interface{} `json:"data"` Data interface{} `json:"data"`
} }
type CandleData struct { // 实现 ResponseData 接口
func (r Okexv5APIResponse) GetCode() string {
return r.Code
}
func (r Okexv5APIResponse) GetMsg() string {
return r.Msg
}
func (r Okexv5APIResponse) GetData() interface{} {
return r.Data
}
type CandleDataResponse struct {
Code string `json:"code"` Code string `json:"code"`
Msg string `json:"msg"` Msg string `json:"msg"`
Data [][]interface{} `json:"data"` // 用二维数组来接收 candles 数据 Data [][]interface{} `json:"data"` // 用二维数组来接收 candles 数据
} }
// 实现 ResponseData 接口
func (r CandleDataResponse) GetCode() string {
return r.Code
}
func (r CandleDataResponse) GetMsg() string {
return r.Msg
}
func (r CandleDataResponse) GetData() interface{} {
return r.Data
}
/* /*
endPoint:请求地址 endPoint:请求地址
apiKey apiKey
@ -125,7 +158,7 @@ func (this *RESTAPI) SetTimeOut(timeout time.Duration) *RESTAPI {
} }
// GetCandles 获取蜡烛图数据 // GetCandles 获取蜡烛图数据
func (this *RESTAPI) GetCandles(ctx context.Context, uri string, param *map[string]interface{}) (res *RESTAPIResult, err error) { func (this *RESTAPI) GetCandles(ctx context.Context, uri string, param *map[string]interface{}) (res ResponseData, err error) {
this.Method = GET this.Method = GET
this.Uri = uri this.Uri = uri
@ -139,7 +172,7 @@ func (this *RESTAPI) GetCandles(ctx context.Context, uri string, param *map[stri
} }
// POST请求 // POST请求
func (this *RESTAPI) Post(ctx context.Context, uri string, param *map[string]interface{}) (res *RESTAPIResult, err error) { func (this *RESTAPI) Post(ctx context.Context, uri string, param *map[string]interface{}) (res ResponseData, err error) {
this.Method = POST this.Method = POST
this.Uri = uri this.Uri = uri
@ -153,11 +186,16 @@ func (this *RESTAPI) Post(ctx context.Context, uri string, param *map[string]int
return this.Run(ctx) return this.Run(ctx)
} }
func (this *RESTAPI) Run(ctx context.Context) (res *RESTAPIResult, err error) { func (this *RESTAPI) Run(ctx context.Context) (ResponseData, error) {
var res *RESTAPIResult
var err error
if this.ApiKeyInfo == nil { if this.ApiKeyInfo == nil {
err = errors.New("APIKey不可为空") err = errors.New("APIKey不可为空")
return if err != nil {
return nil, err
}
return res.V5Response, nil
} }
procStart := time.Now() procStart := time.Now()
@ -174,7 +212,7 @@ func (this *RESTAPI) Run(ctx context.Context) (res *RESTAPIResult, err error) {
uri, body, err := this.GenReqInfo() uri, body, err := this.GenReqInfo()
if err != nil { if err != nil {
return return nil, err
} }
url := this.EndPoint + uri url := this.EndPoint + uri
@ -183,7 +221,7 @@ func (this *RESTAPI) Run(ctx context.Context) (res *RESTAPIResult, err error) {
req, err := http.NewRequest(this.Method, url, bodyBuf) req, err := http.NewRequest(this.Method, url, bodyBuf)
if err != nil { if err != nil {
return return nil, err
} }
res = &RESTAPIResult{ res = &RESTAPIResult{
@ -197,7 +235,7 @@ func (this *RESTAPI) Run(ctx context.Context) (res *RESTAPIResult, err error) {
//log.Println("preHash:", preHash) //log.Println("preHash:", preHash)
sign, err := utils.HmacSha256Base64Signer(preHash, this.ApiKeyInfo.SecKey) sign, err := utils.HmacSha256Base64Signer(preHash, this.ApiKeyInfo.SecKey)
if err != nil { if err != nil {
return return nil, err
} }
//log.Println("sign:", sign) //log.Println("sign:", sign)
headStr := this.SetHeaders(req, timestamp, sign) headStr := this.SetHeaders(req, timestamp, sign)
@ -207,7 +245,7 @@ func (this *RESTAPI) Run(ctx context.Context) (res *RESTAPIResult, err error) {
resp, err := client.Do(req) resp, err := client.Do(req)
if err != nil { if err != nil {
fmt.Println("请求失败!", err) fmt.Println("请求失败!", err)
return return nil, err
} }
defer resp.Body.Close() defer resp.Body.Close()
@ -216,7 +254,7 @@ func (this *RESTAPI) Run(ctx context.Context) (res *RESTAPIResult, err error) {
resBuff, err := ioutil.ReadAll(resp.Body) resBuff, err := ioutil.ReadAll(resp.Body)
if err != nil { if err != nil {
fmt.Println("获取请求结果失败!", err) fmt.Println("获取请求结果失败!", err)
return return nil, err
} }
res.Body = string(resBuff) res.Body = string(resBuff)
@ -227,12 +265,12 @@ func (this *RESTAPI) Run(ctx context.Context) (res *RESTAPIResult, err error) {
err = json.Unmarshal(resBuff, &v5rsp) err = json.Unmarshal(resBuff, &v5rsp)
if err != nil { if err != nil {
fmt.Println("解析v5返回失败", err) fmt.Println("解析v5返回失败", err)
return return nil, err
} }
res.V5Response = v5rsp res.V5Response = v5rsp
return return nil, err
} }
/* /*