一. RK框架介绍
RK(全称Rookie)是开源的Go语言(golang)框架。可以方便搭建生产级别restful和grpc服务。
Github:github.com/rookie-ninja/rk-boot
RK官网:rkdev.info/cn
RK Demo代码:github.com/rookie-ninja/rk-demo/tree/master/gin/basic
二. Demo
这次我用rk搭建一个简单的restful服务。
1. 创建Go项目
mkdirrk-hellocdrk-hellogomodinitrk-hello
2. 安装rk-boot
gogetgithub.com/rookie-ninja/rk-boot
3. 创建boot.yaml文件
gin:-name:greeterport:8080sw:enabled:falsejsonPath:"docs"commonService:enabled:truetv:enabled:trueprom:enabled:falseinterceptors:loggingZap:enabled:truemetricsProm:enabled:truemeta:enabled:true
4.创建main.go
packagemainimport("context""fmt""github.com/gin-gonic/gin""github.com/rookie-ninja/rk-boot""net/http")//@titleRKSwaggerforGin//@version1.0//@descriptionThisisagreeterservicewithrk-boot.//Applicationentrance.funcmain(){//Createanewbootinstance.boot:=rkboot.NewBoot()//Registerhandlerboot.GetGinEntry("greeter").Router.GET("/v1/greeter",Greeter)//Bootstrapboot.Bootstrap(context.Background())//Waitforshutdownsigboot.WaitForShutdownSig(context.Background())}//Greeter@SummaryGreeterservice//@Id1//@version1.0//@produceapplication/json//@Paramnamequerystringtrue"Inputname"//@Success200{object}GreeterResponse//@Router/v1/greeter[get]funcGreeter(ctx*gin.Context){ctx.JSON(http.StatusOK,&GreeterResponse{Message:fmt.Sprintf("Hello%s!",ctx.Query("name")),})}//GreeterResponseresponsetypeGreeterResponsestruct{Messagestring}
5. 运行
gorunmain.go
6. 查看当前服务状态
可以通过自带的rk-tv组件查看:http://localhost:8080/rk/v1/tv/info
三. 结束
至此简单的restful服务搭建完毕。rk还有很多功能,如支持swagger, promtheus等,可以查阅官网和Github。大家有什么问题直接可以留言,或者到GitHub rk-boot项目留issue。
谢谢
作者:Shengyu