-
在主函数文件或者路由配置文件引入gin包
import “github.com/gin-gonic/gin”
-
编写拦截器代码
func checkToken(c *gin.Context) { fmt.Println("进入拦截器") // 编写过滤的逻辑,token校验等 // c.Next():放行执行后续动作 c.Abort():不执行后续动作 c.Next() }
-
路由配置,并使用该拦截器,releases.Use(checkToken),有配置的接口才会生效
router := gin.Default() router.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Welcome helm wrapper server") }) // register router RegisterRouter(router)
func RegisterRouter(router *gin.Engine) { // helm chart charts := router.Group("/api/charts") { // helm show charts.GET("", showChartInfo) // upload chart charts.POST("/upload", uploadChart) // list uploaded charts charts.GET("/upload", listUploadedCharts) // delete chart charts.DELETE("/upload/:chart", deleteChart) } // helm release releases := router.Group("/api/namespaces/:namespace/releases") { // 使用指定拦截器 releases.Use(checkToken) // helm list releases -> helm list releases.GET("", listReleases) // helm get releases.GET("/:release", showReleaseInfo) // helm install releases.POST("/:release", installRelease) // helm upgrade releases.PUT("/:release", upgradeRelease) } }
golang实现拦截器方案
最新推荐文章于 2024-06-29 10:07:26 发布