mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
feat(data): 添加搜索股票 API功能
- 实现了搜索股票 API 的请求和解析功能 - 添加了搜索股票的测试用例
This commit is contained in:
parent
86f041b4d6
commit
43063fa7fb
55
backend/data/search_stock_api.go
Normal file
55
backend/data/search_stock_api.go
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
package data
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"github.com/go-resty/resty/v2"
|
||||||
|
"go-stock/backend/logger"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// @Author spark
|
||||||
|
// @Date 2025/6/28 21:02
|
||||||
|
// @Desc
|
||||||
|
// -----------------------------------------------------------------------------------
|
||||||
|
type SearchStockApi struct {
|
||||||
|
words string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewSearchStockApi(words string) *SearchStockApi {
|
||||||
|
return &SearchStockApi{words: words}
|
||||||
|
}
|
||||||
|
func (s SearchStockApi) SearchStock() map[string]any {
|
||||||
|
url := "https://np-tjxg-g.eastmoney.com/api/smart-tag/stock/v3/pw/search-code"
|
||||||
|
resp, err := resty.New().SetTimeout(time.Duration(30)*time.Second).R().
|
||||||
|
SetHeader("Host", "np-tjxg-g.eastmoney.com").
|
||||||
|
SetHeader("Origin", "https://xuangu.eastmoney.com").
|
||||||
|
SetHeader("Referer", "https://xuangu.eastmoney.com/").
|
||||||
|
SetHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0").
|
||||||
|
SetHeader("Content-Type", "application/json").
|
||||||
|
SetBody(fmt.Sprintf(`{
|
||||||
|
"keyWord": "%s",
|
||||||
|
"pageSize": 50,
|
||||||
|
"pageNo": 1,
|
||||||
|
"fingerprint": "e38b5faabf9378c8238e57219f0ebc9b",
|
||||||
|
"gids": [],
|
||||||
|
"matchWord": "",
|
||||||
|
"timestamp": "1751113883290349",
|
||||||
|
"shareToGuba": false,
|
||||||
|
"requestId": "8xTWgCDAjvQ5lmvz5mDA3Ydk2AE4yoiJ1751113883290",
|
||||||
|
"needCorrect": true,
|
||||||
|
"removedConditionIdList": [],
|
||||||
|
"xcId": "xc0af28549ab330013ed",
|
||||||
|
"ownSelectAll": false,
|
||||||
|
"dxInfo": [],
|
||||||
|
"extraCondition": ""
|
||||||
|
}`, s.words)).Post(url)
|
||||||
|
if err != nil {
|
||||||
|
logger.SugaredLogger.Errorf("SearchStock-err:%+v", err)
|
||||||
|
return map[string]any{}
|
||||||
|
}
|
||||||
|
respMap := map[string]any{}
|
||||||
|
json.Unmarshal(resp.Body(), &respMap)
|
||||||
|
logger.SugaredLogger.Infof("resp:%+v", respMap["data"])
|
||||||
|
return respMap
|
||||||
|
}
|
20
backend/data/search_stock_api_test.go
Normal file
20
backend/data/search_stock_api_test.go
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package data
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go-stock/backend/db"
|
||||||
|
"go-stock/backend/logger"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestSearchStock(t *testing.T) {
|
||||||
|
db.Init("../../data/stock.db")
|
||||||
|
|
||||||
|
res := NewSearchStockApi("换手率连续5日大于5%").SearchStock()
|
||||||
|
data := res["data"].(map[string]any)
|
||||||
|
result := data["result"].(map[string]any)
|
||||||
|
dataList := result["dataList"].([]any)
|
||||||
|
for _, v := range dataList {
|
||||||
|
logger.SugaredLogger.Infof("v:%+v", v)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user