1. 程式人生 > >golang實戰使用gin+xorm搭建go語言web框架restgo詳解5 控制器C

golang實戰使用gin+xorm搭建go語言web框架restgo詳解5 控制器C

無論多麼先進的框架,mvc思想都是值得借鑑的, mvc是模型(model)-檢視(view)-控制器(controller)的縮寫,他是一種軟體設計典範,他用業務邏輯、資料、介面顯示分離的方法組織程式碼,將業務邏輯聚集到一個部件裡面,這樣做有巨大的好處,他在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯。本章節重點闡述controller.

5.1 控制器定義

控制器檔案通常放在controller目錄下,控制器struct名和檔名保持大小寫一致,並採用駝峰命名(首字母大寫)。

一個典型的控制器類定義如下:

//PageController.gopackage controllerimport

("restgo/restgo"   "github.com/gin-gonic/gin"   "net/http"   "fmt")type PageController struct {   restgo.Controller}//前置操作func (ctrl *PageController)before() gin.HandlerFunc {return func(ctx *gin.Context) {      uri := ctx.Request.RequestURI      fmt.Print(uri)if 1==1{         ctx.Next()      }return}}func
(ctrl *PageController)Router(router *gin.Engine){   router.GET("/",ctrl.showIndex)   r := router.Group("page").Use(ctrl.before())   r.POST("create",ctrl.create)   r.POST("update",ctrl.update)   r.POST("query",ctrl.query)   r.POST("delete",ctrl.delete)   r.POST("findOne",ctrl.findOne)}func (ctrl * PageController
) create(ctx *gin.Context){   ctrl.Data = []int{1,2,3}   ctrl.AjaxData(ctx)}func (ctrl * PageController) showIndex(ctx *gin.Context){   ctx.HTML(http.StatusOK,"panel/index.html","")}func (ctrl *PageController)delete(ctx *gin.Context){}func (ctrl *PageController)update(ctx *gin.Context){}func (ctrl *PageController)query(ctx *gin.Context){}func (ctrl *PageController)findOne(ctx *gin.Context){}

控制器檔案分為四部分

l struct定義部分,一般我們讓控制器和restgo.Controller擁有同樣的方法即可。restgo.Controller沒有做很重的封裝,只實現簡單的資料響應介面。大家可以自行封裝。

前置操作before部分,這一部分主要實現前置操作,當一個控制器裡面的方法被訪問時,需要進行特別的一些資料處理,比如鑑權,或者引數校驗,可以在這個方法裡面進行操作,前置操作邏輯不宜太複雜。

l  路由控制函式router,這個函式是必須實現的方法,我們需要在該函式中實現路由配置和對映

業務函式實現,主要通過函式實現,一個控制器通常實現fineOne/query/create/update方法。

待提供原始碼清單

10.1 restgo後臺管理框架

https://github.com/winlion/restgo-admin

10.天天任務清單小程式

https://github.com/winlion/dailytask

10.工業大資料採集

10.restgo cms 

10.restgo 千人大群


作者簡介:胡文林,持續創業者,長期從事技術開源工作。微訊號jiepool-winlion


相關推薦

golang實戰使用gin+xorm搭建go語言web框架restgo5 控制器C

無論多麼先進的框架,mvc思想都是值得借鑑的, mvc是模型(model)-檢視(view)-控制器(controller)的縮寫,他是一種軟體設計典範,他用業務邏輯、資料、介面顯示分離的方法組織程式碼,將業務邏輯聚集到一個部件裡面,這樣做有巨大的好處,他在改進和個性化定製介

golang實戰使用gin+xorm搭建go語言web框架restgo6.4 推薦程式設計方式

6.4 高階查詢對於部分比較特殊的服務,比如根據關鍵字、建立時間等查詢獲取使用者資訊,我們需要設計便於維護的資料結構,我們建議將查詢條件封裝到一個結構體中,具體操作如下1、在model目錄下定義使用者資

golang實戰使用gin+xorm搭建go語言web框架restgo2 框架基本架構

2、框架基本結構一個典型的專案框架,資料夾目錄如下,下面我們來逐一說明這些資料夾或檔案的作用.2.1 控制器資料夾controller該目錄主要儲存控制器檔案,特別地,我們做如下約定1、 檔名稱首字母一律大寫,後面必須新增Controller結尾,用做標識這是控制器檔案,如U

golang實戰使用gin+xorm搭建go語言web框架restgo10 使用restgo搭建後臺管理系統

1、首先上效果2、如何使用2.1、使用如下指令克隆cd $GOPATH/src git clone https://github.com/winlion/restgo-admin.git 你將得到restgo-admin 目錄 進入目錄 cd restgo-admin2.2、

golang實戰使用gin+xorm搭建go語言web框架restgo1.2 我要做什麼

個人覺得golang 是一款非常優秀的語言,但是非常遺憾,目前還不是我們團隊的最優選擇,為了彌補這份遺憾,我們需要做些什麼。梳理一下,我要做的事情,主要有如下幾點1、演示如何整合golang web框架

golang實戰使用gin+新版微信公眾號賽車源碼建go語言web框架rest

gmv 結構 一是 封裝 微信 springmvc 積累 產品 越來越大 聯系方式:QQ:2747044651 網址2017年我們聯系方式:QQ:2747044651 網址公司需要快速叠代一款聯系方式:QQ:2747044651 網址產品,當聯系方式:QQ:27470446

Go語言web框架 gin

Go語言web框架 GIN gin是go語言環境下的一個web框架, 它類似於Martini, 官方聲稱它比Martini有更好的效能, 比Martini快40倍, Ohhhh….看著不錯的樣子, 所以就想記錄一下gin的學習. gin的github程式碼在這裡: gin原始碼. gin的效率獲得如此突飛猛

Go實戰--也許最快的Go語言Web框架kataras/iris初識(basic認證、Markdown、YAML、Json)

生命不止,繼續 go go go !!! 接下來,想跟大家一起分享一些golang語言成熟的、知名度比較高的web框架。 我們從iris web框架開始,開始呢,我們先不去計較和比較誰的速度快,誰的效能好,讓我們先學習如何使用,積累到了一定程度後,再去進行測

Go實戰--也許最快的Go語言Web框架kataras/iris初識三(Redis、leveldb、BoltDB)

生命不止,繼續 go go go !!! 繼續跟大家一起學習iris框架. Redis 啟動Windows上redis服務 credis-server.exe redis.windows.conf 如果出現[9376] 25 Oct

go語言web框架gin 從請求中取引數

  POST /post/123?id=1234&page=1 HTTP/1.1 Content-Type: application/x-www-form-urlencoded   name=manu&message=thi

Go實戰--也許最快的Go語言Web框架kataras/iris初識四(i18n、filelogger、recaptcha)

生命不止,繼續 go go go !!! 繼續分享關於kataras/iris框架 i18n i18n(其來源是英文單詞 internationalization的首末字元i和n,18為中間的字元數)是“國際化”的簡稱。在資訊領域,國際化(i18n)指讓產

GO語言web框架Gin之完全指南(二)

這篇主要講解自定義日誌與資料驗證 引數驗證 我們知道,一個請求完全依賴前端的引數驗證是不夠的,需要前後端一起配合,才能萬無一失,下面介紹一下,在Gin框架裡面,怎麼做介面引數驗證的呢 gin 目前是使用 go-playground/validator 這個框架,截止目前,預設是使用 v10 版本;具體用法可以

go語言web框架beego建立專案基礎一

開啟瀏覽器輸入Git官網網站回車即可開啟Git官網;如果你是Windows使用者開啟,找到首頁右下角顯示器的圖示,裡面有當前最新版本的版本號,釋出日期。點選裡面的“Downloads for Windows”即調整到下載頁面等待下載即可,如果沒有下載點選“click here to download manu

流行的Go語言web框架簡介

    Golang被稱為雲端計算時代的C語言,它以其獨特的優勢逐漸被越來越多的公司所關注和使用。為了充分利用Golang的Web開發優勢,有必要熟悉一下Go語言的web框架。     B

go語言web框架beego建立專案步驟

公司專案引進了區塊鏈技術,區塊鏈上的智慧合約是用go語言寫的,這不得不學習go語言程式設計的基礎知識,go語言的語法知識我就不講了,我也研究不夠深入,資格不夠呀,我也只是能看懂而已,在網上也瞭解了go語言的相關開源框架,有很多,相對用的比較多的go語言web框架就是beeg

go語言web框架

GO 語言愛好者的最佳Web框架如果你是自己寫一個小應用程式,那你可能不需要Web框架。但是如果你要做產品,那麼你肯定需要一個好的框架。如果你認為你有相應的知識和經驗,你會自己編寫所有的這些程式碼麼?你有時間找到一個產品級的外部包來完成工作嗎?你確定這與你應用程式的其它部分一

go語言中反射機理

package main import ( “fmt” “reflect” ) type User struct { Id int Name string Age int } type Manag

windows下用sublime Text搭建go語言開發環境

使用 oot 輸出結果 test 格式 關於 .net 路徑 開發環境 1.安裝go 進入go 中文網:https://studygolang.com/dl 下載後安裝即可,有博客說以這種方式安裝go是不需要設置環境變量的(因為已經自動設置了),但經過嘗試發現這樣不行(設置

Mac下搭建Go語言開發環境

一、安裝Golang的SDK 方法一:下載安裝包SDK 安裝包下載地址  :https://golang.org/dl/ 下載圖中的兩個 1、雙擊 .tar 檔案,就會自動解壓成名字為“go”的資料夾;拖拽到

linux環境下搭建Go語言開發環境並設定語法高亮

這個部落格是我自己從頭開始搭建,在設定語法高亮的時候碰到了很多問題,主要原因嘛,就是網上搜索很多東西,大多都是同樣的內容,但是根據這個內容根本搭建不出Go語言的開發環境,為了給大家減少不必要的麻煩,現在我以我搭建的過程給大家講一下。 我使用的環境是CentOS6.5版,使用的是虛擬機器版本,