wego_frameworkgolang 集成开发框架
wego 是一个采用 go-kit 模式封装的 golang 开发框架,专注编写业务逻辑。
开发流程:
- 编写 service 中间件
- 组合中间件形成 service chain
- handler 由 filter(endpoint)和 service chain 组合形成
- provider 中注册 handler
- server 的路由中注册各种 handler
内置支持 Server
- http
- grpc
- websocket
- cronjob
- timer
- command
- redis queue
- 内部event server
- gateway server
main.go
//如果参数配置了registy,则自动进行consul的服务注册 grpc http 都可
//例如go run main.go -name=test_service -registy=127.0.0.1:8500 -server=grpc
wego.Provider(&providers.ConsulRegistyProvider{})
//这里注册自己的handler
wego.Provider(&provider.ExamProvider{})
//下面的server,根据启动args参数决定
wego.Router("grpc",&router.GrpcRouter{})
wego.Router("http",&router.HttpRouter{})
wego.Router("queue",&router.QueueRouter{})
wego.Router("command",&router.CommandRouter{})
wego.Router("websocket",&router.WebSocketRouter{})
wego.Router("timer",&router.TimerRouter{})
wego.Router("cron",&router.CronRouter{})
//内置加载事件服务,无需路由,直接调用 handler
wego.Router("event", servers.NewEventCommServer())
wego.Start()
举例
//经过jwt认证后的用户id,和name
fmt.Println(ctx.Request("claim.Id"))
fmt.Println(ctx.GetValue("request.claim.Name"))
//cache使用
v, _ := cache.Get("aaaaa")
v := make(map[string]interface{})
v["aaa"] = "bbb"
v["ccc"] = "ddd"
_ = cache.Set("aaaaa", v, 60)
//日志使用
ctx.Log.Info("one....")
ctx.Log.Infof(format,arg...)
//请求参数
ctx.Request("claim.Id")
//返回值
ctx.Response("aa.bb", "cc")
ctx.Response("aa.cc", "dd")
//redis使用
client := clients.Redis() //从pool中获取一个链接
defer client.Close() //延时释放链接,本方法执行完毕时释放
_, _ = client.Do("SET", "go_key", "value")
//mysql使用
user := model.CommUser{Id: id}
has, _ := clients.DB().Get(&user)
//event使用
params := make(map[string]interface{})
payload := &contracts.Payload{
Route: "two", ->接收处理的handler
Params: params,
}
events.Fire(payload)
//redis queue使用 默认db->1
msg := make(map[string]interface{})
msg["aaa"] = "bbb"
err := queues.Fire(
"demo1", ->发送的redis 队列
"queue_test", ->侦听队列的server需要处理的路由handler
msg,
)
//远程服务调用,// 为现有php模式而封装
params:=make(map[string]interface{})
params["test_rpc_post"] = "test_rpc_post"
resp := clients.
Micro("consul_demo"). //服务的名称
Service("demo.post"). //服务的注册的handler
Params(params).
Run()
该方法会从consul中获取注册的服务,并随机选择一个进行请求,支持grpc和http post
http post 对应的远端路由为 http:/host+port/demo/post
评论
kcweb集成 web 应用的开发框架
kcweb 是一个集成web应用的开发框架文档地址:https://intapp.kwebapp.cn/intapp/doc/index/finddoc/1/29/1kcweb作为web开发而设计的高
kcweb集成 web 应用的开发框架
0
iBeansJava集成框架
iBeans,一个新的集成框架,类似于Springtemplates的概念。iBeans与TcatServer一起发行,不过它也可以部署在ApacheTomcat和MuleESB上。iBeans的设计
iBeansJava集成框架
0
fastdep依赖集成框架
fastdep是一个快速集成依赖的框架,集成了一些常用公共的依赖。设计初衷你是否也发现SpringBoot集成一些依赖时过于复杂,需要重写或者建立一些java配置类进行配置,有些多个依赖同时集成还易出
fastdep依赖集成框架
0
RobotiumAndroid集成测试框架
robotium是Android平台上类似Selenium的集成测试工具。有JUnit基础的开发者,还是非常容易上手的。Robotium是一款国外的Android自动化测试框架,主要针对Android
RobotiumAndroid集成测试框架
0
pyScripterPython集成开发环境
PyScripter是一个开源的Python语言集成开发环境。兼容Python2.6和3.0版本。PyScripter只能使用32位的Python版本。
pyScripterPython集成开发环境
0
RodeoPython 集成开发环境
Rodeo是一个以数据为中心的Python集成开发环境,基于Web浏览器使用。安装:$ pip install rodeo $ rodeo .ExecutescriptsRunanalysisAuto
RodeoPython 集成开发环境
0
IDPAI 集成开发环境
IDP是一款自研AIIDE(人工智能集成开发环境),专为AI和数据科学开发人员(如数据科学家、算法工程师)打造,帮助数据科学家和算法工程师提升AI开发效率。IDP原生支持Python和SQL——这是在
IDPAI 集成开发环境
0