2024-02-01 分類: 網站建設
Gin Web開發(fā)
demo1/demo1.go源碼及解析
package mainimport ("github.com/gin-gonic/gin""log""net/http")func Index(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"id":101,"name":"張三",})}func main() {//gin.Default()返回一個引擎實例,該實例已經連接了記錄器和恢復中間件。//gin.Default()實際上進行了3步操作//1. debugPrintWARNINGDefault()//默認的調試打印輸出//2. engine := New()//New返回一個新的空白引擎實例,不附帶任何中間件。//engine.Use(Logger(), Recovery())//engine.Use將一個全局中間件連接到路由器。//通過Use()連接的中間件將包含在每個請求的處理程序鏈中。//甚至404、405,靜態(tài)文件...//Logger()實例一個Logger中間件,它將把日志寫到gin.DefaultWriter。//默認情況下是gin.DefaultWriter = os.Stdout。//Recovery()返回一個中間件,它可以從任何panics(恐慌)中恢復過來,如果有500,它會寫入500。app := gin.Default()//GET是router.Handle("GET", path, handle)的路由快捷寫法。app.GET("/", Index)//app.Run():啟用http.Server路由,并開始偵聽和服務HTTP請求。err := app.Run(":80")if err != nil {log.Panicln(err.Error())}}demo1/demo1_test.go單元測試源碼及解析
packagemainimport ("github.com/gin-gonic/gin""io/ioutil""log""net/http/httptest""testing")func TestIndex(t *testing.T) {//設置log顯示信息格式//log.LstdFlags:表示標準輸出 Ldate | Ltime//log.Llongfile:表示輸出長文件名和行號log.SetFlags(log.LstdFlags |log.Llongfile)//gin.Default()返回一個引擎實例,該實例已經連接了記錄器和恢復中間件。//gin.Default()實際上進行了3步操作//1.debugPrintWARNINGDefault()//默認的調試打印輸出//2.engine := New()//New返回一個新的空白引擎實例,不附帶任何中間件。//engine.Use(Logger(), Recovery())//engine.Use將一個全局中間件連接到路由器。//通過Use()連接的中間件將包含在每個請求的處理程序鏈中。//甚至404、405,靜態(tài)文件...//Logger()實例一個Logger中間件,它將把日志寫到gin.DefaultWriter。//默認情況下是gin.DefaultWriter =os.Stdout。//Recovery()返回一個中間件,它可以從任何panics(恐慌)中恢復過來,如果有500,它會寫入500。router := gin.Default()//GET是router.Handle("GET",path, handle)的路由快捷寫法。router.GET("/", Index)//func NewRequest(methodstring, targetstring, bodyio.Reader) *http.Request//對于http.Handler單元測試,可以使用NewRequest返回一個新的傳入服務器請求。//在測試的過程中,當NewRequest發(fā)生錯誤時,會觸發(fā)panics(恐慌),//method:可以是POST、GET等,默認的就是"GET"http://target:可以是路徑,也可以是絕對網址。如果目標是絕對網址,則使用該網址的主機名。//body:可以是nil,如果body是*bytes.Reader類型、*strings.Reader類型、*bytes.Buffer,需要設置請求長度。req := httptest.NewRequest("GET","/",nil)//func NewRecorder() *ResponseRecorder//httptest.NewRecorder()將返回一個初始化的ResponseRecorder.w := httptest.NewRecorder()//ServeHTTP通過參數(shù)w和req設置HTTP請求router.ServeHTTP(w, req)//w.Result():返回處理程序生成的響應。//返回的響應包括:狀態(tài)碼、標題、正文和可選的尾部。result := w.Result()//result.Body表示響應體。//讀取body字段時,響應body將按需流式傳輸。//如果網絡連接失敗或服務器終止響應,讀取body返回non-nil。//如果服務器用分塊傳輸,body將自動刪除。bytes, err := ioutil.ReadAll(result.Body)iferr !=nil{log.Fatalln(err.Error())}log.Println(string(bytes))t.Log(string(bytes))}非常感謝您讀完創(chuàng)新互聯(lián)的這篇文章:"golang從入門到精通,GinWeb開發(fā),單元測試",僅為提供更多信息供用戶參考使用或為學習交流的方便。我們公司提供:網站建設、網站制作、官網建設、SEO優(yōu)化、小程序制作等服務,歡迎聯(lián)系我們提供您的需求。
新聞名稱:golang從入門到精通,GinWeb開發(fā),單元測試
網站路徑:http://jinyejixie.com/news37/316487.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、網站內鏈、網頁設計公司、網站營銷、移動網站建設、企業(yè)網站制作
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容