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路由
- 介面引數繫結, 公共處理程式碼生成工具
- Gin 模型繫結驗證模型
- Grails中如何繫結引數AI
- 【工作篇】再次熟悉 SpringMVC 引數繫結SpringMVC
- SpringMVC的引數繫結-日期格式轉換SpringMVC
- .net core Web API引數繫結規則WebAPI
- SpringMVC原始碼之引數解析繫結原理SpringMVC原始碼
- gin json binding 引數驗證JSON
- [系列] Gin框架 - 資料繫結和驗證框架
- Laravel 框架中 whereRaw like 引數繫結問題Laravel框架
- 一篇文章搞定SpringMVC引數繫結SpringMVC
- Vue select 繫結動態變數Vue變數
- 基於gin的golang web開發:模型繫結GolangWeb模型
- Gin(四):表單提交校驗和模型繫結模型
- Go專案實戰—引數繫結,型別轉換Go型別
- 利用 Spring Boot 中的 @ConfigurationProperties,優雅繫結配置引數Spring Boot
- SpringMVC【引數繫結、資料回顯、檔案上傳】SpringMVC
- Gin 框架怎麼驗證繫結到結構體的欄位?框架結構體
- 理解靜態繫結與動態繫結
- gin自動路由中介軟體路由
- Go Web輕量級框架Gin學習系列:資料繫結GoWeb框架
- DIY 實現 ThinkPHP 核心框架 (十三)利用反射實現引數繫結PHP框架反射
- 【Java】利用反射執行Spring容器Bean指定的方法,支援多種引數自動呼叫Java反射SpringBean
- 讓gin,echo等golang框架支援結構體註冊Golang框架結構體
- java中的靜態繫結與動態繫結Java
- C++的動態繫結和靜態繫結C++
- 單元測試內實現屬性自動繫結
- JVM調優引數、方法、工具以及案例總結JVM
- Vue一個案例引發的動態元件與全域性事件繫結總結Vue元件事件
- 介面自動化之引數動態生成替換
- 函式計算支援 MySQL 例項繫結函式MySql
- 卡證自動識別填充,簡化應用繫結操作
- 給alias命令新增引數支援
- url 帶引數的介面怎樣自動化
- 自動生成介面各種逆向組合引數
- Hibernate中的自動建表及引數作用