二、實現(xiàn)步驟總覽

步驟 目標(biāo) 關(guān)鍵實現(xiàn)
① 查詢參數(shù)解析 提取 from_msn_results Actix Web 自動解析
② 業(yè)務(wù)邏輯解耦 保持 handler 簡潔 新建 backend.rs
③ 虛擬數(shù)據(jù)生成 返回 Vec<Trip> get_fake_trips()
④ 錯誤處理 Result 類型 + match HTTP 200 vs 500

三、查詢參數(shù)解析:Actix Web 自動提取

請求示例:

GET /trips?from_ms=1714204800000&n_results=100

Handler 簽名:

async fn trips(Query(params): Query<TripRequest>) -> impl Responder {
    // params.from_ms / params.n_results 即用
}

定義請求體:

use serde::Deserialize;

#[derive(Deserialize)]
struct TripRequest {
    from_ms: u64,
    n_results: usize,
}

?? AI 助攻
想自動生成「查詢參數(shù)校驗」代碼?用「代碼生成」提示詞,30 秒即可拿到 serde + validator 模板,再交給「代碼優(yōu)化」砍掉冗余克隆,性能提升 40%!


四、業(yè)務(wù)解耦:新建 backend.rs

1. 目錄結(jié)構(gòu)

src/
├── main.rs
└── backend.rs // 新增

2. 公開函數(shù)簽名

// backend.rs
use chrono::{DateTime, Utc};

#[derive(Serialize)]
pub struct Trip {
    pub id: u32,
    pub pickup_time: DateTime<Utc>,
    pub distance: f32, // 英里
}

pub fn get_fake_trips(from_ms: u64, n_results: usize) -> Result<Vec<Trip>, String> {
    if n_results == 0 {
        return Err("n_results must be > 0".to_string());
    }
    let base_time = DateTime::from_utc(
        NaiveDateTime::from_timestamp_opt((from_ms / 1000) as i64, 0).unwrap(),
        Utc,
    );
    let mut trips = Vec::with_capacity(n_results);
    for i in 0..n_results {
        trips.push(Trip {
            id: i as u32,
            pickup_time: base_time + Duration::minutes(i as i64),
            distance: 1.0 + (i as f32) * 0.1,
        });
    }
    Ok(trips)
}

?? AI 審查
把「虛擬數(shù)據(jù)生成邏輯」提交評審?「代碼審查助手」可自動檢查邊界條件、空 Vec 處理,提前發(fā)現(xiàn) 80% 潛在 Bug!


五、錯誤處理:Result 類型 + match 表達(dá)式

main.rs 中調(diào)用:

use crate::backend::{get_fake_trips, Trip};

async fn trips_handler(Query(req): Query<TripRequest>) -> impl Responder {
    match get_fake_trips(req.from_ms, req.n_results) {
        Ok(trips) => (StatusCode::OK, Json(trips)),
        Err(e) => (StatusCode::INTERNAL_SERVER_ERROR, Json(json!({"error": e}))),
    }
}

六、快速測試

啟動服務(wù)器:

cargo run

發(fā)起請求:

curl -X GET "http://localhost:8080/trips?from_ms=1714204800000&n_results=5"

預(yù)期返回(簡化):

[
  {"id":0,"pickup_time":"2024-04-27T00:00:00Z","distance":1.0},
  {"id":1,"pickup_time":"2024-04-27T00:01:00Z","distance":1.1},
  ...
]

七、進(jìn)階路線圖

階段 技術(shù)點 工具/庫
① 真實數(shù)據(jù) 連接 PostgreSQL sqlx + 遷移
② 分頁 limit+offset 查詢 serde_qs
③ 認(rèn)證 JWT 校驗 actix-jwt
④ 日志 結(jié)構(gòu)化日志 tracing
⑤ 容器化 多階段構(gòu)建 Docker

? AI 補救
把「Dockerfile 多階段構(gòu)建」寫進(jìn)注釋太麻煩?用「代碼文檔生成器」提示詞,自動在文件頭部生成標(biāo)準(zhǔn)注釋,提醒后續(xù)接入緩存掛載,文檔一鍵達(dá)標(biāo)!


八、總結(jié)與下一步

通過以上步驟,我們成功為 Rust 構(gòu)建的 REST API 添加了一個新的端點。這個端點能夠解析查詢參數(shù)并返回虛擬的紐約市出租車行程數(shù)據(jù)。雖然我們目前返回的是虛擬數(shù)據(jù),但這一實現(xiàn)為后續(xù)集成真實數(shù)據(jù)奠定了基礎(chǔ)。Rust 的強類型系統(tǒng)和編譯器強制的隱私機制,使得代碼更加安全和可靠。通過解耦邏輯,我們也提高了代碼的可維護(hù)性。

下周將繼續(xù)探討如何集成真實數(shù)據(jù)庫與分頁功能,敬請期待!??


原文鏈接: https://www.realworldml.net/blog/let-s-rust

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業(yè)工程師共享工作效率翻倍的秘密
返回頂部
上一篇
Rust + Axum + Diesel 構(gòu)建高性能 Todo API 全程指南
下一篇
個人理財 REST API 全景解析:干凈架構(gòu)、無密碼登錄與優(yōu)劣權(quán)衡
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
在线观看日产精品| 91亚洲国产成人精品一区二三| 91精品国产麻豆| av一二三不卡影片| 一区二区三区四区在线播放 | 日韩理论在线观看| 成人免费看片app下载| 欧美精品一区二区高清在线观看| 亚洲综合成人在线| 蜜桃av一区二区| 26uuu亚洲综合色| 91色在线porny| 蜜臀av性久久久久蜜臀aⅴ| 日韩欧美一区二区久久婷婷| 精久久久久久久久久久| 美女视频黄a大片欧美| 在线电影国产精品| 成人开心网精品视频| 精品日韩在线观看| 在线不卡中文字幕播放| 三级一区在线视频先锋| 99vv1com这只有精品| 99精品欧美一区| 欧美日韩免费电影| 欧美在线观看禁18| 久久亚区不卡日本| 在线观看av不卡| 日韩女优制服丝袜电影| 亚洲欧美经典视频| 午夜精品一区二区三区免费视频 | 懂色av一区二区夜夜嗨| 国产亚洲va综合人人澡精品 | 色呦呦国产精品| www激情久久| 91麻豆国产福利在线观看| 亚洲嫩草精品久久| 国产精品日产欧美久久久久| 色噜噜久久综合| 国产白丝精品91爽爽久久 | 欧美日韩精品福利| 6080国产精品一区二区| 国产精品第一页第二页第三页| 日韩av二区在线播放| 久久精品亚洲精品国产欧美kt∨| 亚洲午夜羞羞片| 欧美变态tickle挠乳网站| 美女免费视频一区| 久久久久久久久久久久电影 | 国产成人一区在线| 99久久国产综合精品女不卡| 天天色天天操综合| www.欧美日韩| 久久综合色婷婷| 视频一区二区不卡| 久久久99久久精品欧美| 日本韩国视频一区二区| 韩国精品免费视频| 亚洲欧美激情一区二区| 欧美日韩成人在线一区| 99精品欧美一区二区三区综合在线| 天堂va蜜桃一区二区三区漫画版| 一区二区三区中文字幕精品精品 | 另类小说色综合网站| 国产91精品入口| 国产偷国产偷亚洲高清人白洁| 一区二区三区四区视频精品免费 | 欧美伊人精品成人久久综合97| 久久草av在线| 欧美α欧美αv大片| 日韩影院在线观看| 欧美无人高清视频在线观看| 中文字幕一区二区三区在线观看| 看电视剧不卡顿的网站| 日韩一区二区三区在线观看| 亚洲一二三专区| 日韩亚洲欧美在线观看| 激情六月婷婷久久| 欧美电影在线免费观看| 亚洲国产精品嫩草影院| 91亚洲男人天堂| 高清不卡一区二区在线| 中文子幕无线码一区tr| 国产成人综合视频| 日本va欧美va精品| 国产一区二区不卡| 成人高清av在线| 国产亚洲精品aa午夜观看| 亚洲欧美欧美一区二区三区| 国产黄人亚洲片| 中文字幕免费不卡| 久久er精品视频| 欧美午夜一区二区三区免费大片| 日韩女优毛片在线| 男人的天堂亚洲一区| 精品少妇一区二区三区免费观看| 亚洲成人精品一区| 精品国产一区二区三区av性色 | 亚洲成人激情自拍| 91精品国产综合久久久蜜臀图片| 国产精品高清亚洲| 久久免费精品国产久精品久久久久| 日本欧美加勒比视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 97精品久久久久中文字幕 | 亚洲成人动漫在线免费观看| 国产激情偷乱视频一区二区三区| 国产精品久久午夜夜伦鲁鲁| 日韩久久精品一区| 欧美成人一区二区三区片免费 | 亚洲精品乱码久久久久久黑人| 激情都市一区二区| 97超碰欧美中文字幕| 国产ts人妖一区二区| 天堂蜜桃一区二区三区| 国产精品视频yy9299一区| 亚洲美女视频在线| 亚洲制服丝袜在线| 亚洲午夜影视影院在线观看| 综合久久综合久久| 精品一区二区三区在线视频| 久久99久国产精品黄毛片色诱| 日本不卡中文字幕| 97久久超碰精品国产| 久久国产精品色婷婷| 美女诱惑一区二区| 国产精一区二区三区| 99久久久国产精品免费蜜臀| 97久久精品人人做人人爽| 精品久久久久久久久久久久久久久久久 | 国产亚洲欧美在线| 国产成人精品免费一区二区| 精品动漫一区二区三区在线观看| 亚洲成精国产精品女| 99精品欧美一区二区三区小说| 国产精品国产精品国产专区不片| 精品一区精品二区高清| 日韩一区二区三区视频| 天天综合日日夜夜精品| 99国产精品国产精品毛片| 欧美三级乱人伦电影| 蜜乳av一区二区| 精品国产乱码久久久久久久 | 亚洲精品在线免费观看视频| 美女尤物国产一区| 亚洲色图色小说| 91精品国产综合久久国产大片| 亚洲国产美国国产综合一区二区| 欧美成人精精品一区二区频| 色婷婷激情综合| 国产精品一二三在| 久久久精品tv| 欧美一区二区三区视频免费播放 | 亚洲第一av色| 亚洲v日本v欧美v久久精品| 欧美国产日韩亚洲一区| 国产亚洲制服色| 久久综合久久综合亚洲| 色偷偷久久人人79超碰人人澡| 国产91对白在线观看九色| 夜夜嗨av一区二区三区四季av| 欧美日韩中文字幕精品| 欧洲视频一区二区| 色久综合一二码| 欧美老年两性高潮| 欧洲视频一区二区| 色94色欧美sute亚洲线路二| 99国产欧美另类久久久精品 | 日韩女优av电影| 久久久av毛片精品| 久久久精品国产免费观看同学| 日韩精品一区在线| 国产女人aaa级久久久级| 欧美一级黄色录像| 久久精品免视看| 中文字幕在线不卡一区| 性久久久久久久| 亚洲国产欧美在线| 亚洲成av人片在www色猫咪| 美国三级日本三级久久99| 国产激情一区二区三区四区 | 欧美人伦禁忌dvd放荡欲情| 在线一区二区三区做爰视频网站| 色综合中文字幕国产| 99久久99久久综合| 成人黄色一级视频| 日本高清视频一区二区| 色综合一个色综合| 国产酒店精品激情| 欧美久久久久免费| 美美哒免费高清在线观看视频一区二区 | 色偷偷久久人人79超碰人人澡| 99综合电影在线视频| 国产**成人网毛片九色| 成人教育av在线| 国产三级久久久| 成人app软件下载大全免费| 色屁屁一区二区| 亚洲精品ww久久久久久p站| 顶级嫩模精品视频在线看| 一区二区三区中文字幕精品精品|