go的web服务器框架

net/http

golang内置的网络编程库功能已经很强大,但是没有参数解析和(json)类型封装等功能,不区分方法类型,如get。

go 复制代码
type Response struct {
  Code int    `json:"code"`
  Data any    `json:"data"`
  Msg  string `json:"msg"`
}

func get22(res http.ResponseWriter, req *http.Request) {
  // 获取参数
  fmt.Println(req.URL.String())
  byteData, _ := json.Marshal(Response{
    Code: 0,
    Data: map[string]any{},
    Msg:  "成功",
  })
  res.Write(byteData)
}
func post22(res http.ResponseWriter, req *http.Request) {
  // 获取参数,post的请求体
  byteData, _ := io.ReadAll(req.Body)
  fmt.Println(string(byteData))
  byteData, _ = json.Marshal(Response{
    Code: 0,
    Data: map[string]any{},
    Msg:  "成功",
  })
  res.Write(byteData)
}

func main() {
  http.HandleFunc("/get33", get22)
  http.HandleFunc("/post33", post22)

  http.ListenAndServe(":8080", nil)
}

gin

使用net/http封装的web框架,提供简洁的api,支持多种数据格式,适用于构建RESTful API、Web应用等场景。

zinx

使用net中tcp模块封装的web框架,特点是TCP长连接和自定义协议,适用于游戏服务器、实时通讯系统等,可扩展性更大。

相关推荐
怪力乌龟21 分钟前
go语言设计模式-适配器模式
设计模式·golang·适配器模式
pyliumy3 小时前
在基于Arm架构的华为鲲鹏服务器上,针对openEuler 20.03 LTS操作系统, 安装Ansible 和MySQL
服务器·架构·ansible
努力学习的小廉4 小时前
深入了解Linux —— 调试程序
linux·运维·服务器
螺旋式上升abc4 小时前
GO语言学习笔记
笔记·学习·golang
只做开心事4 小时前
Linux网络之数据链路层协议
linux·服务器·网络
AI学IT4 小时前
(安全防御)旁挂组网双机热备负载分担实验
运维·服务器·网络
已是上好佳5 小时前
介绍一下Qt中的事件过滤
java·服务器·数据库
code monkey.5 小时前
【寻找Linux的奥秘】第一章:基础指令
linux·运维·服务器
至暗时刻darkest6 小时前
go mod文件 项目版本管理
开发语言·后端·golang
银河小铁骑plus6 小时前
Go学习笔记:基础语法6
笔记·学习·golang