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

相关推荐
lwx9148526 小时前
Linux-Shell算术运算
linux·运维·服务器
Wenweno0o6 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
此刻觐神7 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习
航Hang*7 小时前
第3章:Linux系统安全管理——第2节:部署代理服务
linux·运维·服务器·开发语言·笔记·系统安全
fengfuyao9857 小时前
VC++基于服务器的点对点文件传输实例
服务器·开发语言·c++
favour_you___7 小时前
epoll惊群问题与解决
服务器·网络·tcp/ip·epoll
咬_咬7 小时前
go语言学习(基本数据类型)
开发语言·学习·golang·数据类型
炜宏资料库8 小时前
产业集团总部大楼智能化系统项目规划方案精讲
运维·服务器·数据库
一个欠登儿程序员8 小时前
在国产服务器上通过 Docker 部署 Windows 虚拟机
服务器·windows·docker
.select.8 小时前
TCP 3
服务器·网络·tcp/ip