千家信息网

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

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,小编今天带大家了解YoyoGo微服务框架的基本概念是什么,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起
千家信息网最后更新 2025年12月01日YoyoGo微服务框架的基本概念是什么

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

从一个简单Web服务Demo出发

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

  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 main
import ...

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

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

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

函数 服务 对象 程序 框架 概念 是由 路由 支持 运行 内容 周期 就是 朋友 生命 一一对应 两个 代码 例子 多种 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高一计算机网络技术第一模块 德富祥网络技术有限公司 花园战争连接ea服务器 云服务器的费用入账科目是 公安网络安全知识答题 数据库的逻辑模式独立于什么 国外网络技术专利 北京定制网络技术服务机构 公安部网络安全专业研究所 计算机和软件开发专业一样吗 数据库索引的创建 网络安全宣传周专题揭秘 服务器本身发生错误的状态码 删除数据库的一条记录 软件开发报价怎么收费 数据库怎么收缩数据库 软件开发公司的培训需求分析 网络安全我参与手抄报该怎么画 软件开发的基本工作流程 黄浦区软件开发创新服务 腾讯云 云原生数据库 网络安全被骗手抄报内容 我市网络安全工作 知网数据库论文水平 上海新能源网络技术试验设备 无锡信息化网络技术参考价格 厦门的互联网科技公司 物联网怎么提高网络安全 中望软件开发白皮书 小学生家庭就有网络安全
0