|
|
@@ -7,7 +7,7 @@ use rust_decimal::prelude::ToPrimitive;
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
use serde_json::Value;
|
|
|
use tracing::{info};
|
|
|
-use crate::db_connector::get_exchanges_json;
|
|
|
+use crate::db_connector::{get_exchanges_json, get_symbols_json};
|
|
|
use crate::depth::generate_simple_depth;
|
|
|
use crate::msv::{generate_fot, generate_msv};
|
|
|
use crate::params_utils::{get_array, get_str, parse_str_to_decimal};
|
|
|
@@ -151,6 +151,25 @@ async fn get_exchanges() -> impl Responder {
|
|
|
HttpResponse::Ok().content_type("application/json").body(json_string)
|
|
|
}
|
|
|
|
|
|
+#[post("/ia/get_symbols")]
|
|
|
+async fn get_symbols(query: web::Json<Value>) -> impl Responder {
|
|
|
+ let query_value = query.clone();
|
|
|
+ // 参数处理
|
|
|
+ let exchange = match get_str(query_value.clone(), "exchange") {
|
|
|
+ Ok(str) => {
|
|
|
+ str
|
|
|
+ }
|
|
|
+ Err(response) => {
|
|
|
+ return response
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ let response = get_symbols_json(exchange.as_str()).await;
|
|
|
+
|
|
|
+ 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>) {
|
|
|
let addr = format!("0.0.0.0:{}", port);
|
|
|
info!("指标服务绑定地址:{}", addr);
|
|
|
@@ -169,6 +188,7 @@ pub fn run_server(port: u32, running: Arc<AtomicBool>) {
|
|
|
.service(get_symbols_by_filter)
|
|
|
.service(get_indicator)
|
|
|
.service(get_exchanges)
|
|
|
+ .service(get_symbols)
|
|
|
})
|
|
|
.bind(addr)
|
|
|
.expect("Bind port error")
|