gorose orm+dotweb架構快速構建go web網站實戰(四)

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

路由規劃

路由是所有請求的入口, 在這裡, 我們配置所有的請求, 為每一個請求去上對應的名字, 並根據名字去請求不同的控制器, 從而擷取最終的資料
在這裡, 我們做出了簡單的程式碼範例如下:

package routerimport (    // 引入控制器    "github.com/gohouse/kuaixinwen/controller"    // 引入dotweb    "github.com/devfeel/dotweb"    // 引入dotweb中介軟體    "github.com/devfeel/middleware/cors")func Run(Route *dotweb.HttpServer) {    // 設定cors選項中介軟體, 並使用預設的跨網域設定    option := cors.NewConfig().UseDefault()    // 首頁測試 /    Route.GET("/", func(ctx dotweb.Context) error {        return ctx.WriteString("快新聞首頁!")    })    // json返回測試 /json    Route.GET("/json", func(ctx dotweb.Context) error {        return ctx.WriteJson("浪裡個浪...")    }).Use(cors.Middleware(option))    // 前台展示列表 /getnewslist    Route.GET("/getnewslist", controller.GetNewsList).Use(cors.Middleware(option))    // 後台管理    admin := Route.Group("/admin").Use(cors.Middleware(option))    // 新聞列表 /admin/newsdel    admin.GET("/getnewslist", controller.GetNewsList)    // 擷取單條新聞資訊 /admin/getnewsbyid    admin.GET("/getnewsbyid", controller.GetNewsById)    // 新聞增加或修改, 根據是否傳了id來判定, 傳了id就修改, 否則增加 /admin/newsaddoredit    admin.POST("/newsaddoredit", controller.NewsAddOrEdit)    // 新聞刪除 /admin/newsdel    admin.POST("/newsdel", controller.NewsDel)}

說明

這裡用到了 dotweb 的相關組件, 有 HttpServer , Contextcors 中介軟體
他們分別作用於 路由, 請求參數等相關和中介軟體(比如跨域) 等

  • Route.GET 代表該請求位 get 請求
  • Route.POST 代表該請求位 post 請求
  • Route.Group 將請求歸類, 樣本中是將後台管理的請求全部歸類到 admin 下邊
  • Route.Group.Use 使用中介軟體
  • option 中介軟體初始化
  • cors.Middleware(option) 載入中介軟體option
  • controller.xxxxx 載入控制器的對應方法

這裡路由部分就完成了, 止於載入的控制器 controller 部分, 見下一節

本項目源碼: https://github.com/gohouse/kuaixinwen

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.