我們將從安裝與學習Rust基礎語法開始。
熟悉基礎語法後,將開始探索Web框架,使用Axum框架建立Web API,學習路由、請求處理、JSON序列化、錯誤處理,完成簡單的串接記憶體CRUD RESTful API專案。
完成基礎的RESTful API後,我們將串接PostgreSQL資料庫,使用sqlx進行資料庫操作,學習管理連線池,以及環境變數配置管理。
最後,撰寫測試,實作JWT用戶驗證與權限控制,並部署到雲端平台。
什麼是中間件?為什麼重要? 中間件(middleware)在 Web 框架中扮演「介於請求與處理器之間」的軟體層,負責跨切關注點(cross-cutting c...
在打造高效、可靠的現代 Web 服務時,對「State(應用程式狀態)」與共用資源的正確認知,往往比任何框架的 API 還重要。狀態管理如果做得不好,在高併發情...
為什麼需要統一錯誤處理 使用者體驗一致:前端或 API 使用者可以預期固定結構的錯誤,方便顯示或自動化處理。 運維與除錯:統一的錯誤格式(含 request...
目標 建立簡單的 RESTful API(單一檔案 main.rs),不連資料庫,只用記憶體儲存 支援列出所有任務、取得單一任務、建立任務、更新任務、刪除任務...
sqlx 與 diesel 各自的優點 設計理念與使用情境 diesel 以「型別安全的 ORM/Query DSL」為核心。透過 Rust 的型別系統與...
為什麼要用 migration?遷移的目的與設計原則 目的: 把資料庫 schema 的變更以可追溯、可版本化的方式管理(像程式碼一樣)。 保證團隊成員、C...
重點設計概念 PgPool 在程式啟動時建立並透過 axum::Extension 注入給 handler 使用。 每個 handler 使用 paramet...
為什麼要用連線池(PgPool) 每次建立 DB 連線都會造成負擔(網路 handshake、驗證、session 建立),直接為每一個 HTTP 請求建立連...
本文的目標是:用 Redis 快取減少對 Postgres 的讀取負載、降低延遲,同時維持合理的一致性保證。 常見快取模式與一致性權衡 Cache-aside...
Rust 常見的雜湊 crate 有 argon2 與 bcrypt ,接下來我們先分析,再來決定採用哪個。 argon2 與 bcrypt 的比較 bcry...