基于Rust语言的Rocket框架和Sqlx库开发WebAPi项目记录(一)
前置说明
开发语言: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