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

相关推荐
郝学胜-神的一滴11 分钟前
Linux系统调用中断机制深度解析
linux·运维·服务器·开发语言·c++·程序人生
古城小栈11 分钟前
Go 语言 WebAssembly 原生支持:前后端一体化开发详解
开发语言·golang·wasm
chenyuhao202418 分钟前
Linux系统编程:Ext文件系统
linux·运维·服务器·开发语言·网络·c++·后端
KingRumn25 分钟前
Linux进程间通信之内存映射
linux·运维·服务器
猫豆~1 小时前
LAMP项目部署——8day
linux·运维·服务器·centos
Ydwlcloud1 小时前
2025年腾讯云支付宝充值教程:步骤详解与支付渠道新思路
服务器·人工智能·云计算·腾讯云
semantist@语校1 小时前
第五十四篇|从事实字段到推理边界:名古屋国际外语学院Prompt生成中的过度推断防御设计
大数据·linux·服务器·人工智能·百度·语言模型·prompt
RisunJan2 小时前
Linux命令-getsebool命令(查询 SELinux 策略中各项布尔值(boolean)的当前状态)
linux·运维·服务器
Cat God 0072 小时前
CentOS 搭建 SFTP 服务器(一)
linux·服务器·centos
派大鑫wink2 小时前
Python 流程控制实战:打造文字版数独小游戏(新手友好)
服务器·前端·microsoft