MVC
在配置好 iris 的專案之後,接下來先介紹 MVC 的基本概念,再來介紹 iris 的 MVC 網頁應用程式如何開發。
MVC 是什麼
所謂的 MVC 就是 model
、view
、controller
的簡稱,他是一個分層負責的概念,就是把畫面呈現交給 view
管理,請求的轉發及處理交付給controller
來負責,最後中間用共同的 model
來溝通。詳情內容可參考MVC。
iris 的 MVC
接下來要跟大家介紹 iris 框架下如何開發一個 MVC 的網頁應用程式,首先會先跟大家介紹如何建立一個 MVC 的網頁應用程序,接下來介紹 controller
的綁定,最後再介紹如何綁定 controller
上的方法,以及該方法如何對應到 url 的請求,所以首先先設定一個 iris框架的MVC網頁應用程式。
iris 的 MVC 網頁應用程式
在前一篇文章我們設定好 iris 框架後先展示一個 api 的網頁應用程式,這篇我們要由介紹 iris 框架的 MVC 應用程式,所以我們將程式進入點改成以下內容
package main
import (
"github.com/kataras/iris"
"github.com/kataras/iris/mvc"
)
func main() {
app := iris.New()
booksAPI := app.Party("/books")
m := mvc.New(booksAPI)
app.Run(iris.Addr(":8080"))
}
上面的例子是註冊基本的url的路徑,接下來說明一下 controller
的實作及綁定
controller 的實作及綁定
上面的例子設定了 MVC 的 url根目錄的綁定,接下來要介紹一下controller
的綁定,請大家看一下下面的例子
m.Handle(new(BookController))
其中BookController是一個結構在之後可以用來轉發或處理請求的結構。其內容如下面例子
type BookController struct {
/* dependencies */
}
介紹完controller
之後要介紹action
的綁定。
action 的綁定
上面介紹完controller
的宣告以及綁定之後接下來要介紹controller
的方法,也就是action
的綁定,請大家請看看下列例子。
// GET: http://localhost:8080/books
func (c *BookController) Get() []Book {
return []Book{
{"Mastering Concurrency in Go"},
{"Go Design Patterns"},
{"Black Hat Go"},
}
}
// POST: http://localhost:8080/books
func (c *BookController) Post(b Book) int {
println("Received Book: " + b.Title)
return iris.StatusCreated
}
上面例子反映了如何綁定action
以及對應的url。其中方法名稱對應的就是HttpMethod
所以簡單講除了上述的例子外還有delete
及patch
等等的方法。
除此之外如果方法名稱是GetBy
就可以傳入參數,還有一種是GetLogin
的方法對印到GET:/books/login
的url。
結論
這一篇文章介紹 iris 這個框架的 MVC 網頁應用程式該如何實作,但是目前只有實作 model
跟 controller
而 view
將在下一篇跟大家介紹。