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,¶m,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)}想了解更多的话,可以查阅我们的文档哦
评论