首頁 >後端開發 >Golang >我如何在幾小時內寫出 Express-Go

我如何在幾小時內寫出 Express-Go

Patricia Arquette
Patricia Arquette原創
2024-10-20 06:14:02445瀏覽

How I Wrote Express-Go in Hours

如果您曾經使用過 Express.js 這樣的 Web 框架,您就會知道它們是多麼方便易用。現在,想像一下 Go 的易用性及其性能和穩健性。好吧,這激勵我創建了express-go,這是一個受 Express.js 啟發的微框架,最重要的是:我在 19 小時內建立了它!旅程很緊張,但每一秒都值得。讓我告訴你這一切是如何發生的。官方儲存庫連結

這個想法

這一切都始於我的想法:「如果有像 Express.js 這樣簡單的東西,但又具有 Go 的性能,那就太酷了!」。 Go 已經以極簡和高效能而聞名,但在編寫 Web 伺服器時,我覺得仍然缺少像 Express.js 這樣更容易使用的東西。

因此,我沒有抱怨,而是決定親自動手,讓事情發生。我決心創建一個微框架,讓我能夠快速輕鬆地設定路由、處理 HTTP 請求和回應。

旅程的開始

我從基本結構開始:一個可以偵聽 HTTP 請求並根據路由執行不同功能的 Go 應用程式。

第一站:路線

我需要做的第一件事是設定路由。我希望能夠以與 Express.js 類似的方式定義路由,在其中指定 URL 和處理該路由的函數。

這就是路線的魔力:

這裡的想法很簡單:我想要一個路由映射 (map[string]func),其中鍵是 URL,值是處理請求的函數。

處理者的魔力

我最喜歡 Express.js 的事情之一是路由處理程序非常容易使用。因此,我採用了這樣的想法:每個路由只是一個接收兩個參數的函數:請求和回應。在 Go 中,這需要更多的工作,因為標準庫需要大量的手動工作,所以我編寫了一些抽像以使其更容易。

處理請求
Go 中的 HTTP 請求涉及到許多結構和方法,因此我將所有這些封裝在一個名為 Request 的結構中,並提供了一些方便的方法來獲取查詢參數、標頭和請求正文。

現在,我可以執行以下操作,而不是直接處理 http.Request:

這使得事情變得更加乾淨和更具可讀性!

輕鬆應付

發出請求後,是時候讓發送回應變得更容易了。回應還需要一定程度的簡單性,以便我可以快速發送文字或 JSON。

結果

在這19 個小時的工作結束後,我成功創建了express-go:一個快速且易於使用的微框架,其中配置路由和發送響應就像Express.js 一樣簡單,但具有所有功能Go 的力量和性能。

使用範例:

這是一個完整的範例,說明它們如何組合在一起:

簡單、乾淨、切題。我很自豪地說,我能夠在不到一天的時間內建造它,最酷的是它為小型專案提供了足夠的靈活性,而沒有大型框架的所有複雜性。

最後的反思

在 19 小時內創建 Express Go 是一次有趣且充滿挑戰的旅程。我專注於解決我在使用 Go 伺服器時遇到的實際問題,並嘗試使一切盡可能直觀。當然,還有更多工作要做,但還有很多可以玩的!

如果您好奇,請查看程式碼並隨時做出貢獻。畢竟,當我們可以分享過程時,建立這樣的工具會更酷!

現在,請原諒,我要去喝杯咖啡......19個小時後,我應得的,對吧?

以上是我如何在幾小時內寫出 Express-Go的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn