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

81次阅读
没有评论

共计 2445 个字符,预计需要花费 7 分钟才能阅读完成。

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

从一个简单 Web 服务 Demo 出发

Copy

package main
import ...

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 本身包含了很多定义程序生命周期的函数:

UseConfiguration : 用于定义配置文件

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

ConfigureServices : 用于定义 IOC 容器

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

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 协议的。
路由函数定义:

Copy

func(router *Router.RouterGroup) {}

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

Copy

router.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 呢,如下例子:

Copy

func 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 构建函数来构建应用程序。然后通过如下例子将它运行起来:

Copy

package main
import ...

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

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

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2445字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)