1.多详解万星Restful框架原理与实现
多详解万星Restful框架原理与实现
rest框架概览
我们先通过go-zero自带的命令行工具goctl来生成一个apiservice,其main函数如下:
funcmain(){ flag.Parse()varcconfig.Configconf.MustLoad(*configFile,&c)ctx:=svc.NewServiceContext(c)server:=rest.MustNewServer(c.RestConf)deferserver.Stop()handler.RegisterHandlers(server,ctx)fmt.Printf("Startingserverat%s:%d...\n",c.Host,c.Port)server.Start()}解析配置文件
将配置文件传入,初始化serviceContext
初始化restserver
将context注入server中:
注册路由
将context中的rose直播源码接口启动的endpoint同时注入到router当中
启动server
接下来我们来一步步讲解其设计原理!Let'sGo!
web框架从日常开发经验来说,一个好的办公平台源码web框架大致需要满足以下特性:
路由匹配/多路由支持
支持自定义中间件
框架和业务开发完全解耦,方便开发者快速开发
参数校验/匹配
监控/日志/指标等服务自查功能
服务自保护(熔断/限流)
go-zerorest设计/api-grammar.html中的求生之路插件源码tag修饰符
Tips学习源码推荐fork出来边看边写注释和心得,可以加深理解,以后用到这块功能的时候也可以回头翻阅。
项目地址/zeromicro/go-zero
欢迎使用go-zero并star支持我们!
微信交流群关注『微服务实践』公众号并点击交流群获取社区群二维码。