iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 10
1

beego

有點開心寫到第十天,剩下三分之二了,迫不及待的想把這篇完成,越接近年底感覺就好像有做不完的事情,現在都會很怕鐵人賽寫不完,為了好好記錄整個開發的過程,真的是一件挺麻煩的事。

Routing 也有人稱為Router、Route,其實意思都一樣,就是在處理使用者進到網站/API後需要取得什麼樣的controller,做一個統一管理,如果你不知道什麼是MVC的話麻煩請先了解什麼是MVC,本篇不會介紹MVC的概念。
在有View的網站中,Routing扮演著協調的角色,下面這張圖說明了進入網站後,如果有使用Routing的話他的運作方式
router!

如果你沒有View,本來就不用再去將資料Render到你的html上面,你做的事情很單純,就是將資料包裝好,給別人用,沒錯別懷疑你就是一個賣資料的小女孩。
router-noview
不過這都只是在講在伺服器端處理的問題,當然前端也有Router的處理,不過大家可以查查看,有許多的前端框架有做routing,像是Vue、React、Angular都有做Router的套件,透過這些前端框架的routing套件,可以讓網頁似乎沒有重新整理的感覺,像是Youtube,在點擊的過程中沒有閃動的畫面,而是非常平順的操作,這對UX來說可能是一種加分的動作。
youtube-demo

BeeGo Routing 概念篇

好吧現在要來切入正題,Beego Routing的概念,可以參考下面由官方網站提供的執行邏輯
beego-executionlogic

打開我們昨天產生的API專案,beego的進入點就是main.go這支程式所處理的,在上方的import中可以看到有routers的蹤影,因為進入點接著就要透過Router來解析使用者進入的資訊。

main.go

package main

import (
  _ "Board/routers"
  "github.com/astaxie/beego"
)

func main() {
  if beego.BConfig.RunMode == "dev" {
    beego.BConfig.WebConfig.DirectoryIndex = true
    beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
  }
  beego.Run()
}

在進入點後,透過router.go這個檔案來解析url的參數。
還記得我們在前天有透過bee new hello建立一個hello的專案嗎?
他在router.go的程式中,與我們使用bee api Board有些不一樣有看出來了嗎?

hello/router.go

package routers

import (
  "hello/controllers"
  "github.com/astaxie/beego"
)

func init() {
  beego.Router("/", &controllers.MainController{})
}

Board/router.go

package routers

import (
  "Board/controllers"
  "github.com/astaxie/beego"
)

func init() {
  ns := beego.NewNamespace("/v1",
    beego.NSNamespace("/object",
      beego.NSInclude(
        &controllers.ObjectController{},
      ),
    ),
    beego.NSNamespace("/user",
      beego.NSInclude(
        &controllers.UserController{},
      ),
    ),
  )
  beego.AddNamespace(ns)
}

在明天我們再來好好研究為什麼有這樣子的不同吧!


減肥專欄

今天一早起來,嘴巴感覺特別想喝飲料,於是飲料誕生了!享受上班搭配珍珠紅茶的口感,開啟了今天美妙的工作環境,說好的減肥呢?那是明天的事...

小知識

早餐店的大冰奶好好喝
客人客人您有所不知,早餐店的大冰奶可以幫助排便以外,最令人擔心的是-奶精,成份中的「飽和脂肪」、「反式脂肪酸」會造成血管的阻塞跟硬化,另外最關心的熱量,液態奶精的熱量約260大卡,全脂奶粉約504大卡,全脂鮮乳約63大卡,奶精粉則為539大卡。所以還是盡量喝鮮奶茶吧!
(參考資料 TVBS新聞)


每日一句

Pursue something so important that even if you fail, the world is better off with you having tried.
追求重要的事物,重要到即便你失敗了,這世界也會因為你努力過而更好。
Tim O’Reilly


上一篇
Day9 純、手工系列 Go (BeeGo Tool篇)
下一篇
Day11 純、手工系列 Go (BeeGo Routing 使用篇)
系列文
Go!從無到打造最佳行動網站30

尚未有邦友留言

立即登入留言