本期推荐的是一个Go Web 框架——Flamego。
Flamego 是一款简洁的、极易扩展且模块化的 Go Web 框架。作为 Macaron 框架的继任者,Flamego 具备了当下 Go 语言生态中最强大的路由配置语法,没有任何一款 Go Web 框架可以与之比肩。
功能特性
- 在所有 Go Web 框架中都无可匹敌的路由配置语法
- 无限路由组合与嵌套
- 在路由的任意位置注入中间件
- 无侵入式地集成到任何已有的 Web 应用程序中
- 通过函数签名实现依赖注入以编写更易测试和维护的代码
下载安装
Go 语言的最低版本要求为 1.16
go get github.com/flamego/flamego
开始使用
本示例仅适用于已经熟悉 Go 语言在新窗口打开,并且对 HTTP、Web 应用开发有一定了解的用户。
让我们先来看一个非常简单且随处可见的例子:
package main
import "github.com/flamego/flamego"
func main() {
f := flamego.Classic()
f.Get("/", func() string {
return "Hello, Flamego!"
})
f.Run()
}
在示例的第 6 行,函数 flamego.Classic 会创建并返回一个 经典 Flame 实例,这个经典实例集成了一些默认的中间件,包括 flamego.Logger、flamego.Recovery 和 flamego.Static。
在示例的第 7 行,调用 f.Get 方法会注册一个匿名函数(第 7 至 9 行)作为接收到 GET 请求时根路径(”/”)的处理器。在本例中,这个处理器会向客户端发送 “Hello, Flamego!” 字符串。
在示例的第 10 行,我们通过调用 f.Run 来启动 Web 服务。默认情况下,Flame 实例会使用 0.0.0.0:2830 作为监听地址。
接下来让我们运行这段示例代码,我们需要保存代码到本地文件并初始化一个 Go 模块:
$ mkdir flamego-example
$ cd flamego-example
$ nano main.go
$ go mod init flamego-example
go: creating new go.mod: module flamego-example
$ go mod tidy
go: finding module for package github.com/flamego/flamego
...
$ go run main.go
[Flamego] Listening on 0.0.0.0:2830 (development)
当你看到最后一行日志出现的时候,说明 Web 服务已经准备就绪!
我们可以通过在浏览器中访问地址 http://localhost:2830 或使用 curl 命令行工具:
$ curl http://localhost:2830
Hello, Flamego!
—END—
开源协议:MIT