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

相关推荐
稳联技术14 分钟前
智能交响:EtherCAT转Profinet网关开启汽车自动化通信新纪元
运维·服务器·网络
kovlistudio3 小时前
红宝书第四十七讲:Node.js服务器框架解析:Express vs Koa 完全指南
服务器·前端·javascript·node.js·express
爱莉希雅&&&4 小时前
Linux中服务器时间同步
linux·运维·服务器
廖圣平4 小时前
linux删除大文件日志后之后,df -h还占内存
linux·运维·服务器
凤山老林4 小时前
JVM 系列:JVM 内存结构深度解析
java·服务器·jvm·后端
萌萌哒草头将军5 小时前
注意!⚠️ 🔥 🚧 PostgreSQL 存在安全漏洞,请及时更新版本或者停用删除相关服务,防止中招!🚀🚀🚀
服务器·postgresql·xss
曼岛_5 小时前
[密码学基础]GMT 0029-2014签名验签服务器技术规范深度解析
运维·服务器·密码学·签名验签服务器
小oo呆6 小时前
【自然语言处理与大模型】Linux环境下Ollama下载太慢了该怎么处理?
linux·服务器·人工智能
熹乐互动6 小时前
FileZilla“服务器发回了不可路由的地址,使用服务器地址代替
运维·服务器
爱吃涮毛肚的肥肥(暂时吃不了版)6 小时前
项目班——0408——qt的多线程开发
服务器·数据库·nginx