gin自動引數繫結工具,rpc支援
golang gin 引數自動繫結工具
1、 目錄結構說明
- ginrpc/base/common.go 基礎庫
- ginrpc/base/api/context.go 自定義 context 內容
- 支援引數自動檢測 binding:"required"... validator
- 支援 rpc 自動對映
2、api 介面說明
支援 3 種介面模式
- func(*gin.Context) //gogin 原始介面
- func(*api.Context) //自定義的 context 型別
- func(*api.Context,req) //自定義的 context 型別,帶 request 請求引數 func(*gin.Context,*req) ...... 等介面模式
示例程式碼
package main
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
"github.com/xxjwxc/ginrpc/base"
"github.com/xxjwxc/ginrpc/base/api"
)
type ReqTest struct {
Access_token string `json:"access_token"` //access_token
UserName string `json:"user_name" binding:"required"` //使用者名稱
Password string `json:"password"` //新密碼
}
//TestFun1 gin 預設的函式回撥地址
func TestFun1(c *gin.Context) {
fmt.Println(c.Params)
c.String(200, "ok")
}
//TestFun2 自定義context的函式回撥地址
func TestFun2(c *api.Context) {
fmt.Println(c.Params)
c.JSON(http.StatusOK, "ok")
}
//TestFun3 帶自定義context跟已解析的req引數回撥方式
func TestFun3(c *api.Context, req *ReqTest) {
fmt.Println(c.Params)
fmt.Println(req)
c.JSON(http.StatusOK, "ok")
}
//TestFun3 帶自定義context跟已解析的req引數回撥方式
func TestFun4(c *gin.Context, req ReqTest) {
fmt.Println(c.Params)
fmt.Println(req)
c.JSON(http.StatusOK, req)
}
func main() {
router := gin.Default()
router.POST("/test1", base.GetHandlerFunc(TestFun1))
router.POST("/test2", base.GetHandlerFunc(TestFun2))
router.POST("/test3", base.GetHandlerFunc(TestFun3))
router.POST("/test4", base.GetHandlerFunc(TestFun4))
router.Run(":8080")
}
## curl
curl 'http://127.0.0.1:8080/test4' -H 'Content-Type: application/json' -d '{"access_token":"111", "user_name":"222", "password":"333"}'
如果你喜歡,請'star'
更多原創文章乾貨分享,請關注公眾號
- 加微信實戰群請加微信(註明:實戰群):gocnio
相關文章
- gin 註解路由,自動引數繫結工具路由
- Flutter 路由——頁面表及頁面引數繫結的自動生成Flutter路由
- springmvc 引數繫結SpringMVC
- Gin 模型繫結驗證模型
- 介面引數繫結, 公共處理程式碼生成工具
- Grails中如何繫結引數AI
- SpringMVC中的引數繫結總結SpringMVC
- 使用反射對繫結url引數到結構體反射結構體
- .net core Web API引數繫結規則WebAPI
- 【工作篇】再次熟悉 SpringMVC 引數繫結SpringMVC
- [系列] Gin框架 - 資料繫結和驗證框架
- Laravel 框架中 whereRaw like 引數繫結問題Laravel框架
- SpringMVC原始碼之引數解析繫結原理SpringMVC原始碼
- SpringMVC的引數繫結-日期格式轉換SpringMVC
- [轉載]SpringMVC的Model引數繫結方式SpringMVC
- Java Web之SpringMVC 進行引數繫結JavaWebSpringMVC
- Gin(四):表單提交校驗和模型繫結模型
- 基於gin的golang web開發:模型繫結GolangWeb模型
- 繫結變數優缺點、使用、繫結變數窺探、 Oracle自適應共享遊標變數Oracle
- 繫結變數引數關閉之後,oracle會如何操作變數Oracle
- Vue select 繫結動態變數Vue變數
- SQL Server動態SQL,繫結變數SQLServer變數
- 一篇文章搞定SpringMVC引數繫結SpringMVC
- 【重典】Asp.net MVC Fckeditor的擴充套件(支援PV3及自動繫結)ASP.NETMVC套件
- 網易校園招聘考察知識點--預設引數是編譯期間繫結的,而不是動態繫結編譯
- 繫結變數變數
- gin自動路由中介軟體路由
- 【鄒健】Asp.net MVC Fckeditor的擴充套件(支援PV3及自動繫結)ASP.NETMVC套件
- Go專案實戰—引數繫結,型別轉換Go型別
- js如何給事件繫結的函式傳遞引數JS事件函式
- [Spring MVC] - SpringMVC的各種引數繫結方式SpringMVC
- 繫結變數之繫結變數窺探(Bind Peeking)變數
- 理解靜態繫結與動態繫結
- Oracle 繫結變數Oracle變數
- Oracle動態SQL引數支援複雜型別OracleSQL型別
- SpringMVC【引數繫結、資料回顯、檔案上傳】SpringMVC
- 找出沒有繫結變數的引發硬解析的SQL變數SQL
- Go Web輕量級框架Gin學習系列:資料繫結GoWeb框架