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

相关推荐
wanhengidc1 分钟前
云真机和云手机的区别
运维·服务器·游戏·智能手机·云计算
yewq-cn14 分钟前
海思 SLE 芯片 Linux 烧录
linux·服务器
顾安r21 分钟前
11.5 脚本 本地网站收藏(解封归来)
linux·服务器·c语言·python·bash
zzzsde44 分钟前
【Linux】权限(1):初识权限与使用理解
linux·运维·服务器
乌萨奇也要立志学C++2 小时前
【Linux】进程间通信(一)匿名管道原理剖析与进程池手动实现全流程
linux·运维·服务器
Bony-8 小时前
Go语言完全学习指南 - 从基础到精通------语言基础篇
服务器·开发语言·golang
阿巴~阿巴~8 小时前
线程安全单例模式与懒汉线程池的实现与优化
linux·服务器·单例模式·线程池·饿汉模式·懒汉模式·静态方法
大隐隐于野8 小时前
tcp 丢包分析
linux·服务器·网络
Broken Arrows9 小时前
在Linux系统中,top命令的显示参数详解
linux·运维·服务器
APIshop9 小时前
PHP:一种强大的服务器端脚本语言
服务器·php