基于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

相关推荐
liuyao_xianhui1 小时前
四数之和_优选算法(C++)双指针法总结
java·开发语言·c++·算法·leetcode·职场和发展
blank@l1 小时前
Python类和对象----实例属性,类属性(这是我理解类和对象最透彻的一次!!)
开发语言·python·python接口自动化基础·python类和对象·python实例属性·python类属性·类属性和实例属性的区别
超奇电子1 小时前
高斯包络调制正弦波的Python代码
开发语言·python
IT_陈寒1 小时前
React Hooks 实战:这5个自定义Hook让我开发效率提升了40%
前端·人工智能·后端
开始学java1 小时前
异常机制-异常分类
后端
小虚竹and掘金1 小时前
Claude Sonnet 4.5 编程王位世袭罔替!全网首发最全1.3万字详细测评,国内直接使用
后端
Siren_dream1 小时前
python进阶_Day2
开发语言·python
珹洺1 小时前
Java-Spring入门指南(十二)SpringAop的三种实现方式
java·开发语言·spring
做运维的阿瑞1 小时前
使用 Python 打造一个轻量级系统信息查看器
开发语言·后端·python·系统架构
磨十三2 小时前
C++ 中的类型双关、union 与类型双关:让一块内存有多个“名字”
开发语言·c++