| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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)
- }
|