《使用Gin框架構建分散式應用》閱讀筆記:p52-p76

codists發表於2024-10-16

《用Gin框架構建分散式應用》學習第4天,p32-p76總結,總計25頁。

一、技術總結

1.Go知識點

(1)iouti

書上使用ioutil包讀取JSON檔案,但是從go 1.16 開始,不再推薦使用ioutil,應該使用os 包。

(2)json.Unmarshal() vs json.NewDecoder()

當資料已經被載入到記憶體中了(例如一個string,slice),那麼使用json.Unmarshal();如果是讀取檔案,那麼使用json.NewDecoder。

2.go-swagger

使用 go-swagger包生成API文件流程:

(1)安裝

go install github.com/go-swagger/go-swagger/cmd/swagger@latest

(2)給函式新增swagger

/ swagger:route GET /recipes  listRecipes
// Returns list of recipes
// ---
// produces:
// - application/json
// responses:
// '200':
// description: Successful operation
// ListRecipesHandler 差下recipes,因為是查詢所有,所以名稱這裡用的是複數
func ListRecipesHandler(c *gin.Context) {
	c.JSON(http.StatusOK, recipes)
}

(3)生成文件

swagger generate spec -o ./swagger.json

注:每次給函式新增註釋後都需要執行該命令,否則API文件不會更新。

(4)啟動API服務

 swagger serve --no-open -F swager ./swagger.json

注:因為本人使用的是WSL,所以需要新增--no-open,否則報webbrowser: can't open browser錯誤,服務無法啟動。

UI有兩種風格:Redoc和 Swagger UI。上沒“-F swagger”指定了UI風格為Swagger UI。

注:個人覺得書上這種方式比較麻煩且繁瑣,同時大量的註釋導致程式碼非常不簡潔。

二、英語總結

無,第二章除了食物名,整體來說生詞比較少。

三、其它

無。

四、參考資料

1. 程式設計

(1) Mohamed Labouardy,《Building Distributed Applications in Gin》:https://book.douban.com/subject/35610349

2. 英語

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

歡迎搜尋及關注:程式設計人(a_codists)

相關文章