iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Rust

Rust 後端入門 系列

我們將從安裝與學習Rust基礎語法開始。
熟悉基礎語法後,將開始探索Web框架,使用Axum框架建立Web API,學習路由、請求處理、JSON序列化、錯誤處理,完成簡單的串接記憶體CRUD RESTful API專案。
完成基礎的RESTful API後,我們將串接PostgreSQL資料庫,使用sqlx進行資料庫操作,學習管理連線池,以及環境變數配置管理。
最後,撰寫測試,實作JWT用戶驗證與權限控制,並部署到雲端平台。

參賽天數 25 天 | 共 25 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11 Tower與中間件(Middleware)

什麼是中間件?為什麼重要? 中間件(middleware)在 Web 框架中扮演「介於請求與處理器之間」的軟體層,負責跨切關注點(cross-cutting c...

2025-09-25 ‧ 由 gen96 分享
DAY 12

Day 12 Axum 狀態管理與資料共享

在打造高效、可靠的現代 Web 服務時,對「State(應用程式狀態)」與共用資源的正確認知,往往比任何框架的 API 還重要。狀態管理如果做得不好,在高併發情...

2025-09-26 ‧ 由 gen96 分享
DAY 13

Day 13 Axum 錯誤處理:自訂錯誤型別

為什麼需要統一錯誤處理 使用者體驗一致:前端或 API 使用者可以預期固定結構的錯誤,方便顯示或自動化處理。 運維與除錯:統一的錯誤格式(含 request...

2025-09-27 ‧ 由 gen96 分享
DAY 14

Day 14 Axum 專案:簡單 RESTful API

目標 建立簡單的 RESTful API(單一檔案 main.rs),不連資料庫,只用記憶體儲存 支援列出所有任務、取得單一任務、建立任務、更新任務、刪除任務...

2025-09-28 ‧ 由 gen96 分享
DAY 15

Day15 Rust 專案連接資料庫(PostgreSQL)

sqlx 與 diesel 各自的優點 設計理念與使用情境 diesel 以「型別安全的 ORM/Query DSL」為核心。透過 Rust 的型別系統與...

2025-09-29 ‧ 由 gen96 分享
DAY 16

Day 16 Axum 撰寫 migration

為什麼要用 migration?遷移的目的與設計原則 目的: 把資料庫 schema 的變更以可追溯、可版本化的方式管理(像程式碼一樣)。 保證團隊成員、C...

2025-09-30 ‧ 由 gen96 分享
DAY 17

Day 17 Axum CRUD(PostgreSQL版本)

重點設計概念 PgPool 在程式啟動時建立並透過 axum::Extension 注入給 handler 使用。 每個 handler 使用 paramet...

2025-10-01 ‧ 由 gen96 分享
DAY 18

Day18 Axum 資料庫 PgPool 與連線管理

為什麼要用連線池(PgPool) 每次建立 DB 連線都會造成負擔(網路 handshake、驗證、session 建立),直接為每一個 HTTP 請求建立連...

2025-10-02 ‧ 由 gen96 分享
DAY 19

Day 19 Axum 加入快取(Redis)與資料一致性策略

本文的目標是:用 Redis 快取減少對 Postgres 的讀取負載、降低延遲,同時維持合理的一致性保證。 常見快取模式與一致性權衡 Cache-aside...

2025-10-03 ‧ 由 gen96 分享
DAY 20

Day 20 Axum與密碼安全

Rust 常見的雜湊 crate 有 argon2 與 bcrypt ,接下來我們先分析,再來決定採用哪個。 argon2 與 bcrypt 的比較 bcry...

2025-10-04 ‧ 由 gen96 分享