use reqwest::Client; use rust_decimal::Decimal; use serde::{Deserialize, Serialize}; use serde_json::{json}; use crate::server::Response; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct Trade { pub id: String, pub time: Decimal, pub size: Decimal, pub price: Decimal } pub async fn get_trades_json(exchange: &str, symbol: &str, start_at: i64, end_at: i64) -> Response { let url = "http://dc.skyfffire.com:8888/trades"; let params = json!({ "exchange": exchange, "symbol": symbol, "start_time": start_at, "end_time": end_at }); // 创建 HTTP 客户端 let client = Client::new(); // 发送 GET 请求 let response = client.get(url) .query(¶ms) .send() .await.unwrap(); // 错误处理 if response.status().is_success() { let response_text = response.text().await.unwrap(); serde_json::from_str(response_text.as_str()).unwrap() } else { Response { message: Some("请求失败,预计是指标层的网络请求错误。".to_string()), query_string: Default::default(), data: Default::default(), code: -200, } } } #[tokio::test] async fn get_trades_test() { use global::log_utils::init_log_with_info; use tracing::info; init_log_with_info(); let rst = get_trades_json("bitget_usdt_swap", "BTC_USDT", 1713210360000, 1713210960000).await; info!(?rst) }