脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Golang - Go语言入门Go Web Fiber框架快速了解

Go语言入门Go Web Fiber框架快速了解

2022-10-09 13:39宇宙之一粟 Golang

这篇文章主要为大家介绍了Go语言入门Go Web Fiber框架的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Go Fiber 教程展示了如何使用 Fiber 框架在 Golang 中创建简单的 Web 应用程序。

Fiber 是一个简单快速的 Go Web 框架。 Fiber 专注于极致性能和低内存占用。它的灵感来自流行的 Express JS 框架。

Go语言入门Go Web Fiber框架快速了解

Fiber 创建一个 HelloWorld

?
1
2
3
4
5
6
7
8
9
10
11
12
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 动词(例如 GET、POST、PUT、DELETE)和 URL 路径关联到处理函数。要创建路由,我们使用 Fiber 应用程序对象的函数。

?
1
2
3
app.Get("/", func(c *fiber.Ctx) error {
    ...
})

这里我们将 GET 请求中发送的 / 路径映射到处理函数。该函数接收一个上下文对象作为参数。它保存 HTTP 请求和响应。

Go Fiber 状态码

HTTP 响应状态代码指示特定 HTTP 请求是否已成功完成。

回答分为五类:

  • 信息响应 (100–199)
  • 成功响应 (200–299)
  • 重定向 (300–399)
  • 客户端错误 (400–499)
  • 服务器错误 (500–599)
?
1
2
3
4
5
6
7
8
9
10
11
12
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 函数设置 HTTP 状态代码。

?
1
app := fiber.New()

New 函数创建一个新的 Fiber 命名实例。

?
1
2
3
app.Get("/", func(c *fiber.Ctx) error {
    return c.SendStatus(fiber.StatusOK)
})

Get 函数为 HTTP GET 方法注册一个路由。我们将 / 路径映射到匿名函数;该函数返回 Fiber.StatusOK 代码。

Go Fiber 发送短信

使用 SendString 函数发送文本消息。

?
1
2
3
4
5
6
7
8
9
10
11
12
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"))
}

当我们访问 localhost:3000/text URL 时,我们会收到一条简单的文本消息。

?
1
2
$ curl localhost:3000/text
Hello there!!

Go Fiber headers

请求对象还包括从客户端发送的请求标头。请求标头是 HTTP 标头,其中包含有关要获取的资源以及请求资源的客户端的更多信息。

同样,响应标头包括来自服务器的元信息。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 函数返回字段指定的 HTTP 请求标头。在我们的例子中,我们返回用户代理名称。

?
1
2
$ curl localhost:3000/user-agent
curl/7.74.0

Go Fiber 发送文件

SendFile 函数在给定路径传输文件。图像显示在浏览器中。下载功能传输图像;该图像由浏览器作为附件提供。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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 路径。图像存储在数据目录中。

以上就是Go语言入门Go Web Fiber框架快速了解的详细内容,更多关于Go Web Fiber框架的资料请关注服务器之家其它相关文章!

原文链接:https://blog.51cto.com/yuzhou1su/5294274

延伸 · 阅读

精彩推荐
  • Golang基于Golang 高并发问题的解决方案

    基于Golang 高并发问题的解决方案

    这篇文章主要介绍了Golang 高并发问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    iGoogle.ink11372021-06-24
  • Golang如何利用Golang写出高并发代码详解

    如何利用Golang写出高并发代码详解

    今天领导问起为什么用Golang,同事回答语法简单,语言新,支持高并发。那高并发到底如何实现,下面这篇文章主要给大家介绍了关于如何利用Golang写出高并发...

    tomorrowwu8872020-05-08
  • GolangGo 自定义package包设置与导入操作

    Go 自定义package包设置与导入操作

    这篇文章主要介绍了Go 自定义package包设置与导入操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    trouble-i-am-in6722021-06-21
  • Golang谈谈Go语言的反射三定律

    谈谈Go语言的反射三定律

    本文中,我们将解释Go语言中反射的运作机制。每个编程语言的反射模型不大相同,很多语言索性就不支持反射(C、C++)。由于本文是介绍Go语言的,所以...

    daisy4582020-05-01
  • Golanggo语言编程学习实现图的广度与深度优先搜索

    go语言编程学习实现图的广度与深度优先搜索

    这篇文章主要为大家介绍了go语言编程学习实现图的广度与深度优先搜索示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...

    微小冷5702021-11-23
  • GolangGo归并排序算法的实现方法

    Go归并排序算法的实现方法

    归并排序采用的也是分治的策略,把原本的问题先分解成一些小问题进行求解,再把这些小问题各自的答案修整到一起得到原本问题的答案,从而达到分而...

    KevinYan117852022-09-13
  • Golanggo语言实现接口查询

    go语言实现接口查询

    这篇文章主要介绍了go语言实现接口查询,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Nick_6665552021-03-19
  • GolangGolang 语言 For 和 For-range 的区别

    Golang 语言 For 和 For-range 的区别

    在 Golang 语言中,仅有 for 一种循环语句,但是可以模拟 while (condition) {} 和 while (true) {}。除此之外,Golang 语言还引入了另外一个关键字 range,我们也可以配...

    Golang语言开发栈4862021-12-28