目錄routergroup
路由分組
gin框架中,engine被定義為乙個結構體。包含:
建立方式
engine1 = gin.default()
engine2 = gin.new()
gin.default也使用gin.new()建立engine例項,但是會預設使用logger和recovery中介軟體。logger是負責進行列印並輸出日誌的中介軟體,方便開發者進行程式除錯;recovery中介軟體的作用是如果程式執行過程中遇到panic中斷了服務,則recovery會恢復程式執行,並返回伺服器500內部錯誤。通常情況下,我們使用預設的gin.default建立engine例項。
options
head
get <--
post <--
putdelete <--
trace
connect
engine中使用handle方法進行http請求的處理:
...可以通過context.query和context.defaultquery獲取get請求攜帶的引數。
可以通過context.writer.write向請求發起端返回資料。
shortcut
其他方法類似
// get is a shortcut for router.handle("get", path, handle).
func (group *routergroup) get(relativepath string, handlers ...handlerfunc) iroutes
引數查詢(如表單查詢)
context.defaultquery:除了context.defaultquery方法獲取請求攜帶的引數資料以外,還可以使用context.query方法來獲取get請求攜帶的引數。
context.getpostform獲取表單資料:post請求以表單的形式提交資料,除了可以使用context.postform獲取表單資料意外,還可以使用context.getpostform來獲取表單資料。
路由處理
普通處理
r.get("/index", func(c *gin.context) )
r.get("/login", func(c *gin.context) )
r.post("/login", func(c *gin.context) )
還有乙個可以匹配所有請求方法的any
方法如下:
r.any("/test", func(c *gin.context) )
為沒有配置處理函式的路由新增處理程式,預設情況下它返回404**,下面的**為沒有匹配到路由的請求都返回views/404.html
頁面。
r.noroute(func(c *gin.context) )
context.param獲取請求引數
...
engine.delete("/user/:id", deletehandle)
func deletehandle(context *gin.context)
...
客戶端的請求介面是delete型別,請求url為:http://localhost:9000/user/1。
之所以engine中包含通用型的handle和分類處理的get、post等型別的方法,是因為engine中有routergroup作為匿名字段。
routegroup可以稱之為路由集合,在gin中定義為結構體:
type routergroup struct
routegroup的作用就是為每乙個服務請求提供解析功能,並指定每乙個請求對應的處理程式。
在實際的專案開發中,均是模組化開發。同一模組內的功能介面,往往會有相同的介面字首。比如如下所示:
例如在系統中有使用者模組,使用者有不同註冊、登入、使用者資訊、
註冊:http://localhost:9000/user/register
登入:http://localhost:9000/user/login
使用者資訊:http://localhost:9000/user/info
刪除:http://localhost:9000/user/1001
gin框架中可以使用路由組來實現對路由的分類。
我們可以將擁有共同url字首的路由劃分為乙個路由組。習慣性一對{}
包裹同組的路由,這只是為了看著清晰,你用不用{}
包裹功能上沒什麼區別。路由組也是支援巢狀的。
路由組是router.group中的乙個方法
engine := gin.default()
usergroup := engine.group("/user")
engine.run(":9000")
gin框架中的路由使用的是httprouter這個庫。其基本原理就是構造乙個路由位址的字首樹。 python mock介面 ,網路請求2
使用模組 flask 為什麼用,為了本地寫一些介面使用psotman一些工具測試 import flask 輕量級的web開發框架 import tools import json import datetime import time server flask.flask name server....
iOS 網路請求 與 網路封裝
void viewdidload void buttonclick uibutton button void getsynchrnized void postsynchrnized void getasynchrnized void postasynchrnized 新建立乙個類,繼承與nsobje...
RESTful與網路請求過程
最近想好好總結一下網路請求的一些相關的內容,隨便深入去 一下內部是如何實現的。這個名詞可能經常被提到過,這裡也順便簡單過一遍。簡單看看它常用的行為 簡單看看請求的狀態碼 就簡單理解下就好,可以把它當成乙個規範。我建議可以去看這兩篇文章,寫得都比較清楚 1.網路osi模型 常說的網路七層模型 最好還是...