diff --git a/src/main.rs b/src/main.rs index 775c656..56ff5bc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,53 +1,16 @@ use actix_web::{App, HttpResponse, HttpServer, Responder, Result, post, web}; use db::create_pool; use reqwest::Client; -use serde::{Deserialize, Serialize}; use sqlx::postgres::PgPool; mod db; mod models; use db::insert_weather_data; -use models::WeatherData; - -// 定义请求体结构 -#[derive(Debug, Deserialize)] -struct OpenIdRequest { - openid: String, -} - -// 定义成功响应结构 -#[derive(Debug, Serialize)] -struct UserIdResponse { - user_id: i32, -} - -// 微信登录请求结构 -#[derive(Debug, Deserialize)] -struct WeChatLoginRequest { - code: String, -} - -// 微信API响应结构 -#[derive(Debug, Deserialize)] -struct WeChatApiResponse { - openid: Option, - errcode: Option, - errmsg: Option, -} - -// 我们的API响应结构 -#[derive(Debug, Serialize)] -struct OpenIdResponse { - openid: String, -} - -#[derive(Debug, Serialize)] -struct ErrorResponse { - error: String, - errcode: Option, - errmsg: Option, -} +use models::{ + ErrorResponse, OpenIdRequest, OpenIdResponse, UserIdResponse, WeChatApiResponse, + WeChatLoginRequest, WeatherData, +}; // 新增:根据openid获取用户ID的端点 #[post("/getmyid")] diff --git a/src/models.rs b/src/models.rs index 7ea10da..7052bfe 100644 --- a/src/models.rs +++ b/src/models.rs @@ -1,7 +1,43 @@ use chrono::NaiveDate; use serde::{Deserialize, Serialize}; -use sqlx::FromRow; // 处理日期类型 +use sqlx::FromRow; +// 新增:API请求/响应结构体 +#[derive(Debug, Deserialize)] +pub struct OpenIdRequest { + pub openid: String, +} + +#[derive(Debug, Serialize)] +pub struct UserIdResponse { + pub user_id: i32, +} + +#[derive(Debug, Deserialize)] +pub struct WeChatLoginRequest { + pub code: String, +} + +#[derive(Debug, Deserialize)] +pub struct WeChatApiResponse { + pub openid: Option, + pub errcode: Option, + pub errmsg: Option, +} + +#[derive(Debug, Serialize)] +pub struct OpenIdResponse { + pub openid: String, +} + +#[derive(Debug, Serialize)] +pub struct ErrorResponse { + pub error: String, + pub errcode: Option, + pub errmsg: Option, +} + +// 天气数据结构体(已有) #[derive(Debug, Deserialize, Serialize)] pub struct WeatherData { #[serde(rename = "areaType")]