Beerus go 开发的 web 框架开源项目

我要开发同款
匿名用户2021年12月14日
137阅读

技术信息

开源地址
https://gitee.com/mirrors/Beerus
授权协议
MIT

作品详情

Beerus是一个用go开发的web框架,属于Beerus的子项目之一,底层基于go自带的et/http,在此基础上扩展了很多功能,比如:

路由管理会话管理拦截器实体接参数参数自动化验证WebSocket文档

https://beeruscc.com/beerus

示例HTTP示例创建一个函数管理路由

fucCreateRoute(){//打开JSON模式,默认就是开启的,这里为了演示所以手工开了一下,实际是不需要的route.JsoMode=true//任意请求方式,都可以像这样使用形参接收请求参数//路由函数必须有返回值,支持struct,map,数组,这里为了演示方便,直接用的maproute.GET("/example/get",fuc(paramDemoParam)map[strig]strig{//直接返回即可,beerus会自动转成jso响应给前端msg:=make(map[strig]strig)msg["msg"]="success"returmsg})}//接收参数的实体typeDemoParamstruct{TestStrigReceptiostrig`otull:"true"msg:"TestStrigReceptioCaotbeempty"routes:"/example/put"`TestItReceptioit`max:"123"mi:"32"msg:"TestItReceptioThevalueragemustbebetwee32-123"routes:"/example/post"`TestUitReceptiouit`max:"123"mi:"32"msg:"TestUitReceptioThevalueragemustbebetwee32-123"`TestFloatReceptiofloat32`max:"123"mi:"32"msg:"TestFloatReceptioThevalueragemustbebetwee32-123"`TestBoolReceptioboolTestStrigRegReceptiostrig`reg:"^[a-z]+$"msg:"TestStrigRegReceptioDoesotmeettheregular"`TestBeeFileReceptiocommos.BeeFileTestJsoReceptio[]strig}

启动服务

fucmai(){//Iterceptors,routes,etc.Loadigofdatarequiresitsowcallsroutes.CreateRoute()//Listetheserviceadlistetoport8080beerus.ListeHTTP(8080)}

非JSON模式

fucCreateRoute(){//关闭JSON模式,默认是开启的,想要关闭就必须手工设置为falseroute.JsoMode=false//一样支持形参接收参数,但是路由函数不可以有返回值route.POST("/example/post",fuc(paramDemoParam,reqcommos.BeeRequest,rescommos.BeeRespose){//非JSON模式下,必须手工调用函数完成参数验证varresult=params.Validatio(req,&param,param)ifresult!=params.SUCCESS{//可以响应任意类型的数据,这里为了演示方便就还是用的jsores.SedErrorMsg(1128,result)retur}//可以响应任意类型的数据,这里为了演示方便就还是用的jsores.SedJso(`{"msg":"SUCCESS"}`)})}//接收参数的实体typeDemoParamstruct{TestStrigReceptiostrig`otull:"true"msg:"TestStrigReceptioCaotbeempty"routes:"/example/put"`TestItReceptioit`max:"123"mi:"32"msg:"TestItReceptioThevalueragemustbebetwee32-123"routes:"/example/post"`TestUitReceptiouit`max:"123"mi:"32"msg:"TestUitReceptioThevalueragemustbebetwee32-123"`TestFloatReceptiofloat32`max:"123"mi:"32"msg:"TestFloatReceptioThevalueragemustbebetwee32-123"`TestBoolReceptioboolTestStrigRegReceptiostrig`reg:"^[a-z]+$"msg:"TestStrigRegReceptioDoesotmeettheregular"`TestBeeFileReceptiocommos.BeeFileTestJsoReceptio[]strig}WebSocket示例创建一个函数来管理WebSocket路由

fucCreateWebSocketRoute(){wroute.AddWebSocketRoute("/ws/test",oCoectio,oMessage,oClose)wroute.AddWebSocketRoute("/ws/test2",oCoectio,oMessage,oClose)}//Iordertosavetime,olythreefuctiosareusedbelow.Ipractice,youcacofigureasetoffuctiosforeachwroutefucoCoectio(sessio*wparams.WebSocketSessio,msgstrig){sessio.SedStrig("coectiosuccess")}fucoMessage(sessio*wparams.WebSocketSessio,msgstrig){sessio.SedStrig("Igotthemessage.")}fucoClose(sessio*wparams.WebSocketSessio,msgstrig){pritl(msg+"-------------------------------")}

启动服务

fucmai(){//Iterceptors,routes,etc.Loadigofdatarequiresitsowcallsroutes.CreateRoute()routes.CreateWebSocketRoute()//Listetheserviceadlistetoport8080beerus.ListeHTTP(8080)}

想了解更多的话,可以查阅我们的文档哦

功能介绍

Beerus 是 一个用 go 开发的 web 框架,属于 Beerus 的子项目之一,底层基于 go 自带的 net/http,在此基础上扩展了很多功能,比如: 路由管理 会话管理 拦截器 实...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论