Go語(yǔ)言入門(mén)Go?Web?Fiber框架快速了解
Go Fiber 教程展示了如何使用 Fiber 框架在 Golang 中創(chuàng)建簡(jiǎn)單的 Web 應(yīng)用程序。
Fiber 是一個(gè)簡(jiǎn)單快速的 Go Web 框架。 Fiber 專(zhuān)注于極致性能和低內(nèi)存占用。它的靈感來(lái)自流行的 Express JS 框架。
Fiber 創(chuàng)建一個(gè) HelloWorld
package main import ( "log" "github.com/gofiber/fiber/v2" ) func main() { app := fiber.New() app.Get("/", func (c *fiber.Ctx) error { return c.SendString("Hello, World!") }) log.Fatal(app.Listen(":3000")) }
Fiber 路由
路由將 HTTP 動(dòng)詞(例如 GET、POST、PUT、DELETE)和 URL 路徑關(guān)聯(lián)到處理函數(shù)。要?jiǎng)?chuàng)建路由,我們使用 Fiber 應(yīng)用程序?qū)ο蟮暮瘮?shù)。
app.Get("/", func(c *fiber.Ctx) error { ... })
這里我們將 GET 請(qǐng)求中發(fā)送的 / 路徑映射到處理函數(shù)。該函數(shù)接收一個(gè)上下文對(duì)象作為參數(shù)。它保存 HTTP 請(qǐng)求和響應(yīng)。
Go Fiber 狀態(tài)碼
HTTP 響應(yīng)狀態(tài)代碼指示特定 HTTP 請(qǐng)求是否已成功完成。
回答分為五類(lèi):
- 信息響應(yīng) (100–199)
- 成功響應(yīng) (200–299)
- 重定向 (300–399)
- 客戶(hù)端錯(cuò)誤 (400–499)
- 服務(wù)器錯(cuò)誤 (500–599)
package main import ( "log" "github.com/gofiber/fiber/v2" ) func main() { app := fiber.New() app.Get("/", func(c *fiber.Ctx) error { return c.SendStatus(fiber.StatusOK) }) log.Fatal(app.Listen(":3000")) }
SendStatus 函數(shù)設(shè)置 HTTP 狀態(tài)代碼。
app := fiber.New()
New 函數(shù)創(chuàng)建一個(gè)新的 Fiber 命名實(shí)例。
app.Get("/", func(c *fiber.Ctx) error { return c.SendStatus(fiber.StatusOK) })
Get 函數(shù)為 HTTP GET 方法注冊(cè)一個(gè)路由。我們將 / 路徑映射到匿名函數(shù);該函數(shù)返回 Fiber.StatusOK 代碼。
Go Fiber 發(fā)送短信
使用 SendString 函數(shù)發(fā)送文本消息。
package main import ( "log" "github.com/gofiber/fiber/v2" ) func main() { app := fiber.New() app.Get("/text", func(c *fiber.Ctx) error { return c.SendString("Hello there!!") }) log.Fatal(app.Listen(":3000")) }
當(dāng)我們?cè)L問(wèn) localhost:3000/text URL 時(shí),我們會(huì)收到一條簡(jiǎn)單的文本消息。
$ curl localhost:3000/text Hello there!!
Go Fiber headers
請(qǐng)求對(duì)象還包括從客戶(hù)端發(fā)送的請(qǐng)求標(biāo)頭。請(qǐng)求標(biāo)頭是 HTTP 標(biāo)頭,其中包含有關(guān)要獲取的資源以及請(qǐng)求資源的客戶(hù)端的更多信息。
同樣,響應(yīng)標(biāo)頭包括來(lái)自服務(wù)器的元信息。
package main import ( "log" "github.com/gofiber/fiber/v2" ) func main() { app := fiber.New() app.Get("/", func(c *fiber.Ctx) error { return c.SendString("Main page") }) app.Get("/user-agent", func(c *fiber.Ctx) error { ua := c.Get("User-Agent") return c.SendString(ua) }) log.Fatal(app.Listen(":3000")) }
Get 函數(shù)返回字段指定的 HTTP 請(qǐng)求標(biāo)頭。在我們的例子中,我們返回用戶(hù)代理名稱(chēng)。
$ curl localhost:3000/user-agent curl/7.74.0
Go Fiber 發(fā)送文件
SendFile 函數(shù)在給定路徑傳輸文件。圖像顯示在瀏覽器中。下載功能傳輸圖像;該圖像由瀏覽器作為附件提供。
package main import ( "log" "github.com/gofiber/fiber/v2" ) func main() { app := fiber.New() app.Get("/sid", func(c *fiber.Ctx) error { return c.Download("./data/sid.png") }) app.Get("/sid2", func(c *fiber.Ctx) error { return c.SendFile("./data/sid.png") }) log.Fatal(app.Listen(":3000")) }
在示例中,我們有用于顯示和下載圖像的 URL 路徑。圖像存儲(chǔ)在數(shù)據(jù)目錄中。
以上就是Go語(yǔ)言入門(mén)Go Web Fiber框架快速了解的詳細(xì)內(nèi)容,更多關(guān)于Go Web Fiber框架的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何go語(yǔ)言比較兩個(gè)對(duì)象是否深度相同
這篇文章主要介紹了如何go語(yǔ)言比較兩個(gè)對(duì)象是否深度相同,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05Go讀取yaml文件到struct類(lèi)的實(shí)現(xiàn)方法
本文主要介紹了Go讀取yaml文件到struct類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Ubuntu下安裝Go語(yǔ)言開(kāi)發(fā)環(huán)境及編輯器的相關(guān)配置
這篇文章主要介紹了Ubuntu下安裝Go語(yǔ)言開(kāi)發(fā)環(huán)境及編輯器的相關(guān)配置,編輯器方面介紹了包括Vim和Eclipse,需要的朋友可以參考下2016-02-02Go語(yǔ)言題解LeetCode下一個(gè)更大元素示例詳解
這篇文章主要為大家介紹了Go語(yǔ)言題解LeetCode下一個(gè)更大元素示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12詳解Go語(yǔ)言微服務(wù)開(kāi)發(fā)框架之Go chassis
分布式系統(tǒng)中每個(gè)進(jìn)程的動(dòng)態(tài)配置管理及運(yùn)行時(shí)熱加載就成為了一個(gè)亟待解決的問(wèn)題。go chassis汲取了netflix的archaius框架經(jīng)驗(yàn),并做出來(lái)自己的創(chuàng)新特性。2021-05-05Go語(yǔ)言使用net/http實(shí)現(xiàn)簡(jiǎn)單登錄驗(yàn)證和文件上傳功能
這篇文章主要介紹了Go語(yǔ)言使用net/http實(shí)現(xiàn)簡(jiǎn)單登錄驗(yàn)證和文件上傳功能,使用net/http模塊編寫(xiě)了一個(gè)簡(jiǎn)單的登錄驗(yàn)證和文件上傳的功能,在此做個(gè)簡(jiǎn)單記錄,需要的朋友可以參考下2023-07-07golang rate令牌桶源碼分析實(shí)現(xiàn)方式
這篇文章主要介紹了golang rate令牌桶源碼分析實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07