iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
1

MVC

在配置好 iris 的專案之後,接下來先介紹 MVC 的基本概念,再來介紹 iris 的 MVC 網頁應用程式如何開發。

本文同步放置於此

MVC 是什麼

所謂的 MVC 就是 modelviewcontroller的簡稱,他是一個分層負責的概念,就是把畫面呈現交給 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所以簡單講除了上述的例子外還有deletepatch等等的方法。
除此之外如果方法名稱是GetBy就可以傳入參數,還有一種是GetLogin的方法對印到GET:/books/login的url。

結論

這一篇文章介紹 iris 這個框架的 MVC 網頁應用程式該如何實作,但是目前只有實作 modelcontrollerview 將在下一篇跟大家介紹。


上一篇
iris 安裝
下一篇
iris mvc的view
系列文
Iris這個在go語言上地表最快的網頁框架30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言