当前位置: 首页 > news >正文

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

        

相关文章:

  • 青少年编程与数学 02-019 Rust 编程基础 14课题、并发编程
  • 系统集成项目管理工程师学习笔记
  • 深度学习框架对比---Pytorch和TensorFlow
  • C++23 新增的查找算法详解:ranges::find_last 系列函数
  • AWS CloudHSM:金融级密钥安全管理实战,如何通过FIPS 140-2认证守护数据生命线?
  • aws 实践创建policy + Role
  • W1R3S: 1.0.1靶场
  • 从卡顿到丝滑:JavaScript性能优化实战秘籍
  • (C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)
  • 【数据挖掘笔记】兴趣度度量Interest of an association rule
  • FastAPI使用@app.get/@app.post等装饰器注册路由无效404 Not Found
  • Kotlin并发请求的一些知识记录
  • 掌握Multi-Agent实践(七):基于AgentScope分布式模式实现多智能体高效协作[并行加速大模型辅助搜索、分布式多用户协同辩论赛]
  • 详细分析python 中的deque 以及和list 的用法区别
  • 【深度剖析】安踏体育的数字化转型(上篇1)
  • 嵌入式学习的第二十一天-数据结构-双向链表
  • js关于number类型的计算问题
  • RabbitMQ工作流程及使用方法
  • c/c++消息队列库RabbitMQ的使用
  • 动态库和静态库的区别
  • 湃书单|澎湃新闻编辑们在读的14本书:后工作时代
  • “80后”北京市东城区副区长王智勇获公示拟任区委常委
  • 技术派|更强的带刀侍卫:从054B型战舰谈谈世界护卫舰发展
  • IPO周报|本周A股暂无新股网上申购,年内最低价股周二上市
  • “不为一时一事所惑,不为风高浪急所扰”——习近平主席对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典纪实
  • 花2万多在海底捞办婚礼,连锁餐企要抢酒楼的婚宴生意?