中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2022-01-17 17:07:37 來源:億速云 閱讀:192 作者:柒染 欄目:云計算

小編今天帶大家了解YoyoGo微服務框架的基本概念是什么,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“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本身包含了很多定義程序生命周期的函數:

  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協議的。
路由函數定義:

  
  
  

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微服務框架的基本概念是什么

至此我們介紹了YoyoGo微服務框架的基本概念:一個Web服務是由 WebHostBuilder -> WebApplicationBuilder -> HttpServer -> WebHost 組成。
YoyoGo微服務框架的基本概念是什么

感謝大家的閱讀,以上就是“YoyoGo微服務框架的基本概念是什么”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

佛教| 巧家县| 九寨沟县| 平陆县| 中西区| 邳州市| 漳平市| 凤阳县| 洛宁县| 金山区| 沧州市| 长武县| 宝兴县| 阜阳市| 湄潭县| 长乐市| 昌都县| 锦州市| 永胜县| 慈利县| 武义县| 长白| 鄄城县| 河北区| 思茅市| 江城| 金门县| 兴安县| 桂平市| 诸城市| 增城市| 石城县| 新巴尔虎左旗| 嘉兴市| 永泰县| 巨鹿县| 西贡区| 北海市| 西丰县| 白朗县| 高尔夫|