在配置好 iris 的專案之後,接下來先介紹 MVC 的基本概念,再來介紹 iris 的 MVC 網頁應用程式如何開發。
本文同步放置於此
所謂的 MVC 就是 model
、view
、controller
的簡稱,他是一個分層負責的概念,就是把畫面呈現交給 view
管理,請求的轉發及處理交付給controller
來負責,最後中間用共同的 model
來溝通。詳情內容可參考MVC。
接下來要跟大家介紹 iris 框架下如何開發一個 MVC 的網頁應用程式,首先會先跟大家介紹如何建立一個 MVC 的網頁應用程序,接下來介紹 controller
的綁定,最後再介紹如何綁定 controller
上的方法,以及該方法如何對應到 url 的請求,所以首先先設定一個 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
的實作及綁定
上面的例子設定了 MVC 的 url根目錄的綁定,接下來要介紹一下controller
的綁定,請大家看一下下面的例子
m.Handle(new(BookController))
其中BookController是一個結構在之後可以用來轉發或處理請求的結構。其內容如下面例子
type BookController struct {
/* dependencies */
}
介紹完controller
之後要介紹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
將在下一篇跟大家介紹。