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长连接和自定义协议,适用于游戏服务器、实时通讯系统等,可扩展性更大。

相关推荐
翼龙云_cloud4 分钟前
阿里云渠道商:阿里云自动扩缩容配置教程
运维·服务器·阿里云·云计算
别多香了15 分钟前
系统批量运维管理器 paramiko
linux·运维·服务器
2501_9418814022 分钟前
在墨西哥城复杂流量环境下构建高稳定性API网关的架构设计与实现实践分享
macos·golang·xcode
杨云龙UP22 分钟前
Linux LVM 在线扩容标准操作流程_20260102
linux·运维·服务器·centos·ux
CS创新实验室30 分钟前
《计算机网络》深入学:虚电路
服务器·计算机网络·php·虚电路
天远云服36 分钟前
Go语言高并发实战:集成天远手机号码归属地核验API打造高性能风控中台
大数据·开发语言·后端·golang
独自破碎E2 小时前
在Linux系统中怎么排查文件占用问题?
linux·运维·服务器
QUST-Learn3D2 小时前
geometry4Sharp Ray-Mesh求交 判断点是否在几何体内部
服务器·前端·数据库
Ha_To2 小时前
2026.1.6 Windows磁盘相关
linux·运维·服务器
地球资源数据云2 小时前
2019-2024年中国逐年10米分辨率最大值合成NDVI数据集
大数据·运维·服务器·数据库·均值算法