温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

YoyoGo微服务框架的基本概念是什么

发布时间:2022-01-17 17:07:37 阅读:194 作者:柒染 栏目:云计算
GO开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

小编今天带大家了解YoyoGo微服务框架的基本概念是什么,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“YoyoGo微服务框架的基本概念是什么”的知识吧。

从一个简单Web服务Demo出发

  
  
  Copypackage mainimport ...func main() {    YoyoGo.CreateDefaultBuilder(func(router Router.IRouterBuilder) {        router.GET("/info",func (ctx *Context.HttpContext) {    // 支持Group方式            ctx.JSON(200, Context.M{"info": "ok"})        })    }).Build().Run()       //默认端口号 :8080}

框架基本概念

1.HostBuilder

HostBuilder本身是一个抽象概念(类),可以衍生出多种HostBuilder。
比如:Web Host Builder , RPC Host Builder , General Host Builder等等。
上面的代码用CreateDefaultBuilder函数,创建的就是一个默认的WebHostBuilder,既然是WebHostBuilder那默认最重要的函数,那当然是用于Http路由的声明路由函数。HostBuilder本身包含了很多定义程序生命周期的函数:

  1. UseConfiguration : 用于定义配置文件

  2. Configure : 用于定义ApplicationBuilder,它是管理程序如何构建的一组方法

  3. ConfigureServices : 用于定义IOC容器

  4. OnApplicationLifeEvent : 用于定义程序生命周期的事件通知

  5. Build : 用于生成最终可运行的Host对象

2.ApplicationBuilder

如果说程序是由Host对象装载的话,Host的构造就是由ApplicationBuilder完成的。Host本身就是由ApplicationBuilder与Server共同构成的。这两个对象一一对应,ApplicationBuilder用于构造,Server用于承载具体的应用协议。比如WebHost就是由WebApplicationBuilder构造并提供了ServeHTTP函数,由HttpServer来承载,共同完成的。

3.RouterBuilder

RouterBuilder是由WebApplicationBuilder衍生出来的路由定义对象,用于声明GET,POST,PUT,DELETE等类型的请求处理程序。也就是说没有创建WebHostBuilder就没有WebApplicationBuilder也就没有RouterBuilder;框架本身就是支持多种Server协议的。
路由函数定义:

  
  
  Copyfunc(router *Router.RouterGroup) { }

上面demo中就通过它完成了一个GET请求,并返回JSON: {"info":"ok"}.
RouterBuilder本身还支持Group的方式,将一组API进行统一的URL定义:

  
  
  Copyrouter.Group("/v1/api", func(router *Router.RouterGroup) {     router.GET("/info", GetInfo)     router.GET("/hello", GetHello)})

通过以上代码将生成 /v1/api/info 和 /v1/api/hello 两个GET请求路由地址。

4.Host

创建HostBuilder后,通过Build函数得到了最终可运行的Host对象(**Build().Run() **)。创建Host对象的同时,其实也完成了Server对象的创建,Host与Server一一对应的。Host表示了一个可运行的宿主,它负责管理整个程序的生命周期;而Server则是更为具体的服务类型,比如Http,xxRPC。Server更多是一种通讯协议上的表达。

5.定制WebHostBuilder

在上面的demo中,我们定义了一个默认的WebHostBuilder,但是它所支持的内容较少只提供了最基本的Host定义,那如何定制一个WebHostBuilder呢,如下例子:

  
  
  Copyfunc CreateCustomBuilder() *Abstractions.HostBuilder {return YoyoGo.NewWebHostBuilder().		Configure(func(app *YoyoGo.WebApplicationBuilder) {  app.UseEndpoints(unc(router Router.IRouterBuilder) {                      router.GET("/info",func (ctx *Context.HttpContext) {                           ctx.JSON(200, Context.M{"info": "ok"})                      })		})}

通过定制,我们可以使用完整的HostBuilder构建函数来构建应用程序。然后通过如下例子将它运行起来:

  
  
  Copypackage mainimport ...func main() {  CreateCustomBuilder().Build().Run() //默认端口 :8080}

YoyoGo微服务框架的基本概念是什么

至此我们介绍了YoyoGo微服务框架的基本概念:一个Web服务是由 WebHostBuilder -> WebApplicationBuilder -> HttpServer -> WebHost 组成。
YoyoGo微服务框架的基本概念是什么

感谢大家的阅读,以上就是“YoyoGo微服务框架的基本概念是什么”的全部内容了,学会的朋友赶紧操作起来吧。相信亿速云小编一定会给大家带来更优质的文章。谢谢大家对亿速云网站的支持!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/maxzhang1985/blog/4755764

AI

开发者交流群×