Go Web 编程入门:快速了解 Fiber 框架

简介: Go Fiber 教程展示了如何使用 Fiber 框架在 Golang 中创建简单的 Web 应用程序。Fiber 是一个简单快速的 Go Web 框架。 Fiber 专注于极致性能和低内存占用。它的灵感来自流行的 Express JS 框架。

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


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


网络异常,图片无法展示
|

Fiber 创建一个 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 动词(例如 GET、POST、PUT、DELETE)和 URL 路径关联到处理函数。要创建路由,我们使用 Fiber 应用程序对象的函数。

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

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


Go Fiber 状态码

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

回答分为五类:

  • 信息响应 (100–199)
  • 成功响应 (200–299)
  • 重定向 (300–399)
  • 客户端错误 (400–499)
  • 服务器错误 (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 函数设置 HTTP 状态代码。

app := fiber.New()

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

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

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


Go Fiber 发送短信

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

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 时,我们会收到一条简单的文本消息。

$ curl localhost:3000/text
Hello there!!

Go Fiber headers

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

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

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 请求标头。在我们的例子中,我们返回用户代理名称。

$ curl localhost:3000/user-agent
curl/7.74.0

Go Fiber 发送文件

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

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 路径。图像存储在数据目录中。

相关文章
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
15天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
102 44
|
7天前
|
数据采集 监控 Java
go语言编程学习
【11月更文挑战第3天】
23 7
|
9天前
|
存储 设计模式 安全
Go语言中的并发编程:从入门到精通###
本文深入探讨了Go语言中并发编程的核心概念与实践技巧,旨在帮助读者从理论到实战全面掌握Go的并发机制。不同于传统的技术文章摘要,本部分将通过一系列生动的案例和代码示例,直观展示Go语言如何优雅地处理并发任务,提升程序性能与响应速度。无论你是Go语言初学者还是有一定经验的开发者,都能在本文中找到实用的知识与灵感。 ###
|
11天前
|
缓存 前端开发 中间件
go语言中Web框架
【10月更文挑战第22天】
18 4
|
11天前
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP是一种流行的服务器端脚本语言,自诞生以来在Web开发领域占据重要地位。从简单的网页脚本到支持面向对象编程的现代语言,PHP经历了多次重大更新。本文探讨PHP的现代演进历程,重点介绍其在Web开发中的应用及框架创新,如Laravel、Symfony等。这些框架不仅简化了开发流程,还提高了开发效率和安全性。
19 3
|
10天前
|
前端开发 JavaScript 开发工具
从框架到现代Web开发实践
从框架到现代Web开发实践
21 1
|
13天前
|
Unix Linux Go
go进阶编程:Golang中的文件与文件夹操作指南
本文详细介绍了Golang中文件与文件夹的基本操作,包括读取、写入、创建、删除和遍历等。通过示例代码展示了如何使用`os`和`io/ioutil`包进行文件操作,并强调了错误处理、权限控制和路径问题的重要性。适合初学者和有经验的开发者参考。
|
13天前
|
SQL 安全 PHP
探索PHP的现代演进:从Web开发到框架创新
PHP 自发布以来一直在 Web 开发领域占据重要地位,历经多次重大更新,从简单的脚本语言进化为支持面向对象编程的现代语言。本文探讨 PHP 的演进历程,重点介绍其在 Web 开发中的应用及框架创新。自 PHP 5.3 引入命名空间后,PHP 迈向了面向对象编程时代;PHP 7 通过优化内核大幅提升性能;PHP 8 更是带来了属性、刚性类型等新特性。
24 3
|
14天前
|
Serverless Go
Go语言中的并发编程:从入门到精通
本文将深入探讨Go语言中并发编程的核心概念和实践,包括goroutine、channel以及sync包等。通过实例演示如何利用这些工具实现高效的并发处理,同时避免常见的陷阱和错误。