iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
Software Development

Rust Web API 從零開始 系列

我會介紹在讀Zero To Production In Rust的心得
練習的程式碼在此
https://github.com/marvin-hsu/zero_to_production

鐵人鍊成 | 共 30 篇文章 | 20 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day11 - 使用SeaORM進行持久化(1)

rust有幾個套件可以用來與資料庫溝通 Diesel: 最知名的ORM,功能較為成熟,不支援非同步 sqlx: 直接使用sql與資料庫進行互動,支援非同步 S...

2023-09-11 ‧ 由 marvinhsu 分享
DAY 12

Day12 - 使用SeaORM進行持久化(2)

在開始之前我們先調整一下先前python的整合測試 def test_subscribe_returns_a_200_for_valid_form_data()...

2023-09-12 ‧ 由 marvinhsu 分享
DAY 13

Day13 - 在Axum中共享資料

昨天的程式碼中,我們直接在handler中建立連線,但是在一個網頁應用中較好的作法是建立與資料庫的連線池,讓連線可以被重複利用。以.Net中我接觸的作法便是由E...

2023-09-13 ‧ 由 marvinhsu 分享
DAY 14

Day14 - 幫API加上OpenAPI文件吧

Restful API的開發者應該都熟悉,我們會撰寫符合OpenAPI規格的文件以便於串接。在Rust中,除了poem這個框架原生支持OpenAPI開發外,其他...

2023-09-14 ‧ 由 marvinhsu 分享
DAY 15

Day15 - 管理應用程式的組態

目前的應用程式中的參數像是database的連線字串都是直接寫死的,這樣其實是不利於測試與佈署的。實際上一個應用程式往往需要隨著環境不同帶入不同的組態,舉例來說...

2023-09-15 ‧ 由 marvinhsu 分享
DAY 16

Day16 - 發佈之前,先加個Log吧(1)

目前為止第一支API已經可以紀錄基本的訂閱資料,這時候就可以先準備發布了。不過發布之前,我們要先幫系統加上紀錄log的功能,當產品發佈到雲平台後就不像在本機一樣...

2023-09-16 ‧ 由 marvinhsu 分享
DAY 17

Day17 - 發佈之前,先加個Log吧(2)

介紹完Tracing後,就要來看看怎麼加入專案裡面,我們簡單的把套件設定加上去。 首先可以先看一下telemetry.rs這個檔案,這裡面設定了subscrib...

2023-09-17 ‧ 由 marvinhsu 分享
DAY 18

Day18 - 佈署到Fly.io

到目前為止,已經完成最基礎的功能,因為自己營運一個伺服器很麻煩,在眾多免費方案之下就選了一些人推薦的fly.io了,免費版本有幾個限制: 最多使用3台VM 總...

2023-09-18 ‧ 由 marvinhsu 分享
DAY 19

Day19 - 建立自動化流程

昨天手動把專案部屬好了,接下來我想要幫專案加上自動化流程,讓每次的異動都能跑過測試並佈署到fly.io,因為專案放在github上,理所當然的選擇了github...

2023-09-19 ‧ 由 marvinhsu 分享
DAY 20

Day20 - 使用reqwest串接寄信服務

接下來要進一步完善訂閱的功能,當使用者送出訂閱資料時,希望能夠寄送認證信以確認訂閱是有效的,我選擇使用smtp2go的第三方服務來寄送通知信。 Reqwest...

2023-09-20 ‧ 由 marvinhsu 分享