久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

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

215次閱讀
沒有評論

共計 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字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 错那县| 河曲县| 渭源县| 乌海市| 错那县| 孟津县| 道孚县| 日喀则市| 肥城市| 韶山市| 昌乐县| 南召县| 商水县| 辽阳县| 中西区| 井研县| 桓台县| 临猗县| 汉源县| 邯郸县| 永兴县| 马关县| 辽宁省| 山西省| 保靖县| 邻水| 体育| 广州市| 凭祥市| 饶阳县| 古田县| 北碚区| 桓仁| 方正县| 姜堰市| 榆树市| 佛教| 永吉县| 富川| 德庆县| 辽宁省|