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

????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/81713.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/81713.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/81713.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中國城市間交通駕車距離矩陣(2024)

中國城市間交通駕車距離矩陣(2024) 1852 數據簡介 中國城市中心的交通駕車距離,該數據為通過審圖號GS(2024)0650的中國城市地圖得其城市中心距離,再通過高德地圖api計算得出其交通駕車最短距離矩陣,單位為KM,方便大家研究使用。…

MySQL替換瀚高數據庫報錯: TO_DAYS()不存在(APP)

文章目錄 環境癥狀問題原因解決方案報錯編碼 環境 系統平臺:中標麒麟(海光)7,中標麒麟(飛騰)7 版本:4.5 癥狀 MySQL替換為瀚高數據庫進行應用系統適配報錯:TO_DAYS()不…

驅動-Linux定時-timer_list

了解內核定時相關基礎知識 文章目錄 簡要介紹timer_list 特點API 函數實驗測試程序 - timer_mod.c編譯文件-Makefile實驗驗證 注意事項總結 簡要介紹 硬件為內核提供了一個系統定時器來計算流逝的時間(即基于未來時間點的計時方式, 以當前時刻為計時開始…

計算機網絡概要

?絡相關基礎知識 協議 兩設備之間使?光電信號傳輸信息數據 要想傳遞不同信息 那么?者?就需要約定好的數據格式 層 封裝 繼承 多態是計算機的性質 它們?持了軟硬件分層的實現 同層協議可以?接通信 同層協議?不直接通信 是各?調?下層提供的結構能?完成通信 分層…

QT 使用QPdfWriter和QPainter繪制PDF文件

QT如何生產pdf文件,網上有許多文章介紹,我也是看了網上的文章,看他們的代碼,自己琢磨琢磨,才有了本編博客; 其他什么就不詳細說了,本篇博客介紹的QPdfWriter和QPainter繪制PDF文件;…

企業標準信息公共服務平臺已開放標準通編輯器訪問入口

標準通 數字化標準編輯器 專業、高效、便捷 企業標準信息公共服務平臺 近日,企業標準信息公共服務平臺已開放標準通編輯器訪問入口,可進入官網指定版塊使用! 核心功能亮點 解決企業痛點 傳統標準編制,需反復核對格式、逐條…

【Hadoop】--HA高可用搭建--3.2.2

修改環境配置文件 hadoop-env.sh # 在文件末尾添加以下內容: # java_home記得修改 export JAVA_HOME/usr/java/jdk1.8.0xxxx export HDFS_NAMENODE_USERroot export HDFS_DATANODE_USERroot export HDFS_ZKFC_USERroot export HDFS_JOURNALNODE_USERroot export YA…

【skywalking】index“:“skywalking_metrics-all“},“status“:404}

skywalking 啟動報錯 java.lang.RuntimeException: {"error":{"root_cause":[{"type":"index_not_found_exception","reason":"no such index [skywalking_metrics-all]","resource.t ype":"inde…

【Android】從垂直同步到屏幕刷新機制(一)

【Android】從垂直同步到屏幕刷新機制 本文參考以及部分圖片來源: 垂直同步_小科普:“垂直同步”究竟是什么?-CSDN博客 “終于懂了” 系列:Android屏幕刷新機制—VSync、Choreographer 全面理解!-騰訊云開發者社區-騰訊…

ACL完全解析:從權限管理到網絡安全的核心防線

訪問控制列表(ACL)是一種用于管理資源訪問權限的核心安全機制,廣泛應用于操作系統和網絡設備中。以下是對ACL的詳細解析: 1. 基本概念 定義:ACL是由多個訪問控制條目(ACE)組成的列表&#xff0…

代碼審計-php框架開發,實戰tp項目,打擊微交易,源碼獲取,擴大戰果

實戰,不安全寫法引發的注入 這個bc靶場源碼沒有,看老師演示 打開很明顯的tp框架源碼 拿到tp框架之后第一步,搜索版本信息5.0.5 兩個思路 1.代碼的不安全寫法 2.版本自身存在的漏洞 全局搜索where看看也沒有不安全的 哎?&…

大模型的實踐應用43-基于Qwen3(32B)+LangChain框架+MCP+RAG+傳統算法的旅游行程規劃系統

大家好,我是微學AI,今天給大家介紹一下大模型的實踐應用43-基于Qwen3(32B)+LangChain框架+MCP+RAG+傳統算法的旅游行程規劃系統。本報告將闡述基于大模型Qwen3(32B)、LangChain框架、MCP協議、RAG技術以及傳統算法構建的智能旅游行程規劃系統。該系統通過整合多種技術優勢,實…

Jsoup庫和Apache HttpClient庫有什么區別?

Jsoup 和 Apache HttpClient 是兩個功能不同的庫,它們在 Java 開發中被廣泛使用,但用途和功能有明顯的區別: Jsoup 用途:Jsoup 是一個用于解析 HTML 文檔的庫。它提供了非常方便的方法來抓取和解析網頁內容,提取和操作…

騰訊云存儲原理

我們來詳細展開你提到的兩個核心結構概念: 一、“基于分布式文件系統 對象存儲技術” 是什么? 1. 分布式文件系統(DFS)基礎 分布式文件系統是一種支持將數據分布在多個存儲節點上、并對上層用戶透明的文件系統。騰訊云COS雖然是…

python fastapi + react, 寫一個圖片 app

1. 起因, 目的: 上廁所的時候,想用手機查看電腦上的圖片,但是又不想點擊下載。此app 應運而生。 2. 先看效果 單擊圖片,能放大圖片 3. 過程: 過程很枯燥。有時候, 有一堆新的想法。 但是做起來太麻煩,…

Kubernetes控制平面組件:Kubelet詳解(五):切換docker運行時為containerd

云原生學習路線導航頁(持續更新中) kubernetes學習系列快捷鏈接 Kubernetes架構原則和對象設計(一)Kubernetes架構原則和對象設計(二)Kubernetes架構原則和對象設計(三)Kubernetes控…

QT6 源(111):閱讀與注釋菜單欄 QMenuBar,進行屬性與成員函數測試,信號與槽函數測試,并給出源碼

(1) (2) (3) (4) (5) (6) (7)以下源代碼來自于頭文件 qmenubar . h : #ifndef QMENUBAR_H #defi…

Leetcode 3552. Grid Teleportation Traversal

Leetcode 3552. Grid Teleportation Traversal 1. 解題思路2. 代碼實現 題目鏈接:3552. Grid Teleportation Traversal 1. 解題思路 這一題的話核心就是一個廣度優先遍歷,我們只需要從原點開始,一點點考察其所能到達的位置,直至…

2023CCPC河南省賽暨河南邀請賽個人補題ABEFGHK

Dashboard - 2023 CCPC Henan Provincial Collegiate Programming Contest - Codeforces 過題難度:A H F G B K E 銅獎: 2 339 銀獎: 3 318 金獎: 5 523 A: 直接模擬 // Code Start Here int t;cin >> t;while(t-…

如何用Python批量解壓ZIP文件?快速解決方案

如何用Python批量解壓ZIP文件?快速解決方案 文章目錄 **如何用Python批量解壓ZIP文件?快速解決方案**代碼結果詳細解釋 話不多說,先上干貨!!! 代碼 import os import zipfiledef unzip_file(dir_path: str…