版权声明:
尊重知识产权,严厉打击非法采集。
如果设计一个小型应用程序,则可能不需要 Web 框架, 例如用原生的 Go 语言,我们可以很快搭起一个 Webserver 并提供服务。创建一个文件 server.go 就这么简单。
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/hello", hello)
http.ListenAndServe(":8080", nil)
}
func hello(w http.ResponseWriter, req *http.Request) {
// 设置 Cookie
cookie := http.Cookie{Name: "Blog", Value: "hooyes.net"}
http.SetCookie(w, &cookie)
// 输出额外的头信息
w.Header().Add("Server", "Fake Nginx")
//获取地址栏参数值
some := req.URL.Query().Get("p")
// 输出Body内容
fmt.Fprintf(w, "Hello Hooyes! %s", some)
}
开发环境我们可以直接运行
$ go run server.go
打开浏览器输入 http://127.0.0.1:8080/hello?p=welcome
其实我们也不必什么事都从头开始造轮子,适当的站在巨人的肩膀上,也许看得比别人更远。
我推荐几个不错的 Go 语言 Web 开源框架,有一定数量的星级并且近期都有活跃度的,如下:
以下根据 Github 上的一些数据,从不同的角度,作出一些排名,供大家参考比较。
项目 | Star 数量k |
---|---|
Gin | 38.6 |
Beego | 24.0 |
Iris | 18.3 |
Echo | 17.3 |
Kit | 17.1 |
Mux | 12.0 |
Httprouter | 11.3 |
项目 | Fork 数量k |
---|---|
Beego | 4.8 |
Gin | 4.5 |
Iris | 2.0 |
Kit | 1.8 |
Echo | 1.6 |
Mux | 1.2 |
Httprouter | 1.1 |
项目 | Commits 数量 |
---|---|
Beego | 3491 |
Iris | 1703 |
Kit | 1407 |
Gin | 1390 |
Echo | 1357 |
Mux | 286 |
Httprouter | 275 |
项目 | 最新 Commits 时间 |
---|---|
Gin | 2020-05-25 |
Kit | 2020-05-15 |
Mux | 2020-05-17 |
Echo | 2020-05-07 |
Iris | 2020-03-24 |
Httprouter | 2020-01-14 |
Beego | 2020-01-01 |
$ welcome to hooyes.net
[INFO] ------------------------------o-
[INFO] Author : HOOYES
[INFO] Site : https://hooyes.net
[INFO] Page : https://hooyes.net/p/go-web-framework
[INFO] Last build : 2023-07-31 09:16:20 +0000
[INFO] -0------------------------------
上一篇 Go 输出斐波那契数列
下一篇 学着投资美股