前置說明
開發語言:Rust
Web框架:Rocket
數據庫:PostgreSQL
開發步驟
新建項目:
cargo new projectname
在Cargo.toml文件里配置如下依賴:
[dependencies]
rocket = {version="0.5.0",features=["json"]}
jsonwebtoken="9.2.0"
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "0.8", features = ["serde", "v4"] }
reqwest = { version = "0.11", features = ["json"] }
anyhow = "1.0.91"[dependencies.sqlx]
version = "0.7"
default-features = false
features = ["macros", "migrate"][dependencies.rocket_db_pools]
version = "0.1.0"
features = ["sqlx_postgres"]
Rocket框架的配置文件(Rocket.toml)設置如下:
[global]
address="0.0.0.0"
port=9999
log_level="debug"
[default.databases.afpdb]
url = "postgresql://postgres:123@127.0.0.1:5432/prodb"
項目目錄結構:
project
|—src
????????|—common? ? //公共模塊
? ? ? ? ? ? ? ? |—db.rs? ? //構造數據庫連接池
????????????????|—jwt.rs? ?//處理token
????????????????|—mistake.rs? //處理錯誤
????????????????|—util.rs? //工具函數
????????????????|—mod.rs? //導出模塊
????????|—params? ?//封裝參數結構體模塊
? ? ? ? ? ? ? ? ?|—req.rs? ? //封裝請求參數結構體
? ? ? ? ? ? ? ? ?|—resp.rs? //封裝返回數據結構體
?????????????????|—result_parse.rs? //解析返回參數結構體
?????????????????|—mod.rs? ? //導出模塊? ? ? ?
????????|—logic? ? ? ?//業務邏輯模塊
????????????????|—wechat.rs? //處理業務邏輯
????????????????|—mod.rs? ? //導出模塊
????????|—login_handle.rs? ? //登錄相關控制處理函數
????????|—xxx_handle.rs? ??//控制處理函數
????????|—yyy_handle.rs? ??//控制處理函數
????????|—lib.rs? ?//統一導出庫文件
????????|—main.rs? ? ? //程序入口
|—target
|—Cargo.lock
|—Cargo.toml
|—Rocket.toml
????????