|
@@ -4,7 +4,7 @@ use actix_web::{web, App, HttpResponse, HttpServer, Responder, get};
|
|
|
use serde::{Deserialize, Serialize};
|
|
use serde::{Deserialize, Serialize};
|
|
|
use serde_json::{json, Value};
|
|
use serde_json::{json, Value};
|
|
|
use tracing::{info};
|
|
use tracing::{info};
|
|
|
-use crate::json_db_utils::{collect_depth_json, collect_records_json, collect_special_trades_json, get_symbols_by_exchange};
|
|
|
|
|
|
|
+use crate::json_db_utils::{collect_depth_json, collect_records_json, collect_simple_depth_json, collect_special_trades_json, get_symbols_by_exchange};
|
|
|
|
|
|
|
|
// 定义用于反序列化查询参数的结构体
|
|
// 定义用于反序列化查询参数的结构体
|
|
|
#[derive(Serialize, Deserialize, Clone)]
|
|
#[derive(Serialize, Deserialize, Clone)]
|
|
@@ -337,6 +337,38 @@ async fn get_order_book(query: web::Query<SimpleQuery>) -> impl Responder {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+#[get("/order_book_simple")]
|
|
|
|
|
+async fn get_order_book_simple(query: web::Query<SimpleQuery>) -> impl Responder {
|
|
|
|
|
+ if query.validate() {
|
|
|
|
|
+ let response_data = collect_simple_depth_json(
|
|
|
|
|
+ query.start_time.clone().unwrap(),
|
|
|
|
|
+ query.end_time.clone().unwrap(),
|
|
|
|
|
+ query.exchange.clone().unwrap().as_str(),
|
|
|
|
|
+ query.symbol.clone().unwrap().as_str()
|
|
|
|
|
+ ).await;
|
|
|
|
|
+
|
|
|
|
|
+ let response = Response {
|
|
|
|
|
+ query: serde_json::to_value(&query.into_inner()).unwrap(),
|
|
|
|
|
+ msg: Some("查询成功".to_string()),
|
|
|
|
|
+ code: 200,
|
|
|
|
|
+ data: response_data,
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ let json_string = serde_json::to_string(&response).unwrap();
|
|
|
|
|
+ HttpResponse::Ok().content_type("application/json").body(json_string)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ let response = Response {
|
|
|
|
|
+ query: serde_json::to_value(&query.into_inner()).unwrap(),
|
|
|
|
|
+ msg: Some("查询内容有误,必须包含四个参数:[symbol, exchange, start_time, end_time]".to_string()),
|
|
|
|
|
+ code: 500,
|
|
|
|
|
+ data: Value::Null,
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ let json_string = serde_json::to_string(&response).unwrap();
|
|
|
|
|
+ HttpResponse::Ok().content_type("application/json").body(json_string)
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
pub fn run_server(port: u32, running: Arc<AtomicBool>) {
|
|
pub fn run_server(port: u32, running: Arc<AtomicBool>) {
|
|
|
let addr = format!("0.0.0.0:{}", port);
|
|
let addr = format!("0.0.0.0:{}", port);
|
|
|
info!("数据服务绑定地址:{}", addr);
|
|
info!("数据服务绑定地址:{}", addr);
|
|
@@ -351,6 +383,7 @@ pub fn run_server(port: u32, running: Arc<AtomicBool>) {
|
|
|
.service(get_records_map)
|
|
.service(get_records_map)
|
|
|
.service(get_exchanges)
|
|
.service(get_exchanges)
|
|
|
.service(get_order_book)
|
|
.service(get_order_book)
|
|
|
|
|
+ .service(get_order_book_simple)
|
|
|
})
|
|
})
|
|
|
.bind(addr)
|
|
.bind(addr)
|
|
|
.expect("Bind port error")
|
|
.expect("Bind port error")
|