use axum::{ routing::get, Router, Json, }; use serde::Serialize; use tower_http::cors::{CorsLayer, Any}; use tracing_subscriber; mod wallet; mod exchange; #[tokio::main] async fn main() { // 初始化日志 tracing_subscriber::fmt::init(); // 创建路由 let app = Router::new() .route("/", get(root)) .route("/health", get(health_check)) // 钱包API .nest("/api/wallet", wallet::routes()) // 交易所API .nest("/api/exchange", exchange::routes()) // CORS配置 .layer( CorsLayer::new() .allow_origin(Any) .allow_methods(Any) .allow_headers(Any) ); // 启动服务器 let addr = "0.0.0.0:8080"; println!("🚀 NAC API服务器启动在 http://{}", addr); let listener = tokio::net::TcpListener::bind(addr).await.unwrap(); axum::serve(listener, app).await.unwrap(); } async fn root() -> &'static str { "NAC API Server v1.0.0" } async fn health_check() -> Json { Json(HealthResponse { status: "ok".to_string(), version: "1.0.0".to_string(), }) } #[derive(Serialize)] struct HealthResponse { status: String, version: String, }