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

基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)

  • 参数结构体模块

在src目录下新建params文件夹

在params文件夹下依次新建req.rs、resp.rs、result_parse.rs、mod.rs

目录结构如下:

project

|—src

        |—params   //封装参数结构体模块

                 |—req.rs    //封装请求参数结构体

                 |—resp.rs  //封装返回数据结构体

                 |—result_parse.rs  //解析返回参数结构体

                 |—mod.rs    //导出模块       

req.rs代码:


use rocket::serde::{Deserialize,Serialize};
use rocket::FromForm;
use rocket::fs::TempFile;//注册请求参数
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct Userparam {pub uname: String,pub id:String,
}//xxx请求参数
#[derive(Deserialize)]
#[serde(crate = "rocket::serde")]
pub struct Xxxparam<'r> {pub xxxvalue: &'r str,pub checktime: &'r str,pub uid: &'r str,pub id:&'r str,
}//notice请求参数
#[derive(Deserialize)]
#[serde(crate = "rocket::serde")]
pub struct Noticeparam<'r> {pub content: &'r str,pub checktime: &'r str,pub noticetime: &'r str,pub uid: &'r str,pub id:&'r str,
}//yyy请求参数
#[derive(Deserialize)]
#[serde(crate = "rocket::serde")]
pub struct Yyyparam<'r> {pub yyyvalue: &'r str,pub checktime: &'r str,pub uid: &'r str,pub id:&'r str,
}//ocr识别请求参数
#[derive(Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct AccessToken {pub img_url:String,}//上传图片参数
#[derive(FromForm)]
pub struct UploadImg<'a>{pub file:TempFile<'a>,pub name:&'a str
}

resp.rs代码:

use rocket::serde::Serialize;//封装公共返回插入状态数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Resp { pub code:i8,pub message:String,}//封装注册成功后返回状态数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Regresp { pub code:i8,pub message:String,pub uid:String,}//封装user返回数据#[derive(Serialize)]#[serde(crate = "rocket::serde")]pub struct Listuser { pub uname: String,pub id:String,}//封装xxx返回数据
#[derive(Serialize)]
#[serde(crate = "rocket::serde")]
pub struct Listxxx { pub xxxvalue: String,pub checktime: String,pub uid: String,pub id:String,}//封装notice返回数据#[derive(Serialize)]#[serde(crate = "rocket::serde")]pub struct Listnotice { pub content: String,pub checktime: String,pub noticetime: String,pub uid: String,pub id:String,}//封装yyy返回数据#[derive(Serialize)]#[serde(crate = "rocket::serde")]pub struct Yyyliver { pub yyyvalue: String,pub checktime: String,pub uid: String,pub id:String,}

resp_parse.rs代码:


use std::collections::HashMap;use rocket::serde::{Deserialize, Serialize};//请求微信token返回的结构体
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct WechatToken{pub access_token:String,expires_in:i32
}//请求ocr解析返回的一级结构体
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct Ocr1{errcode:i32,errmsg:String,pub items:Vec<Ocr2>
}//ocr解析的items项二级结构体
#[derive(Deserialize,Serialize,Debug)]
#[serde(crate = "rocket::serde")]
pub struct Ocr2{pub text:String,pos:HashMap<String,HashMap<String,i64>>
}

mod.rs代码:

//请求参数
pub mod req;
//返回参数
pub mod resp;
//请求返回的参数解析
pub mod result_parse;

相关文章:

  • 《AI大模型应知应会100篇》第65篇:基于大模型的文档问答系统实现
  • 一种应用非常广泛的开源RTOS(实时操作系统):nuttx
  • 【HTML 全栈进阶】从语义化到现代 Web 开发实战
  • DDD领域驱动介绍
  • C++ asio网络编程(7)增加发送队列实现全双工通信
  • 【研0学习计划表】
  • 图像分类实战:基于ResNet实现猫狗识别
  • MySQL的存储过程
  • 数学复习笔记 12
  • 深入浅出 MinIO:身份管理与权限配置实战 !
  • C#学习第23天:面向对象设计模式
  • SD2351核心板:开启AI视觉普惠化新时代
  • 涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
  • Room数据库
  • 筑牢信息安全防线:涉密计算机与互联网隔离的理论实践与风险防控
  • 【pbootcms】打开访问首页显示未检测到您服务器环境的sqlite3数据库拓展,请检查php.ini中是否已经开启该拓展
  • 现代计算机图形学Games101入门笔记(十二)
  • React中使用openLayer画地图
  • 拟合(最小二乘拟合)
  • React Flow 节点类型详解与实战:内置节点使用与自定义组件开发
  • 如何通过轻淘客做网站/编程培训
  • 爱最好网站建设/今日小说排行榜
  • 公司网站手机版模板/何鹏seo
  • 网站地图建设有什么用/企业查询天眼查
  • 做网站有要求吗/电脑培训班价目表
  • 哪个网站是做批发的/新乡网站seo