前言
基于gin编写encode、decode、base64加密接口,代码仓库:https://github.com/Rodert/go-demo/tree/main/go_gin_demo , 如果无法下载留言邮箱。
代码
注释很详细,入门级教程代码
package main import ( "encoding/base64" "fmt" "log" "net/http" "github.com/gin-gonic/gin" ) func main() { router := gin.Default() //ping test router.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", "encode": "/encode", "decode": "/edecode", }) }) // router.GET("/someGet", getting) // router.POST("/somePost", posting) // router.PUT("/somePut", putting) // router.DELETE("/someDelete", deleting) // router.PATCH("/somePatch", patching) // router.HEAD("/someHead", head) // router.OPTIONS("/someOptions", options) //test router.GET("/encode", func(c *gin.Context) { q, ok := c.GetQuery("q") if ok { c.JSON(http.StatusOK, gin.H{ "你的输入是:": q, "你的编码是:": my_encode(q), }) } else { c.JSON(http.StatusOK, gin.H{ "你的输入不合法": "输入合法字符", }) } }) //dis var。路由配置,处理字符串。 v1 := router.Group("/dis_var") { v1.GET("encode", my_encode_router) v1.GET("decode", my_decode_router) v1.GET("base64", my_base64_router) } //upload file,performability。上传文件并存储到指定位置 router.MaxMultipartMemory = 8 << 20 // 8 MiB router.POST("/upload", func(c *gin.Context) { // single file file, _ := c.FormFile("file") log.Println(file.Filename) // Upload the file to specific dst. c.SaveUploadedFile(file, "D://1.png") c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename)) }) router.Run(":8090") } //encode编码 func my_encode_router(c *gin.Context) { q, ok := c.GetQuery("q") if ok { c.JSON(http.StatusOK, gin.H{ "你的输入是:": q, "编码是:": my_encode(q), }) } else { c.JSON(http.StatusOK, gin.H{ "你的输入不合法": "输入合法字符", }) } } //decode字符串解码 func my_decode_router(c *gin.Context) { q, ok := c.GetQuery("q") if ok { c.JSON(http.StatusOK, gin.H{ "你的输入是:": q, "解码是:": my_decode(q), }) } else { c.JSON(http.StatusOK, gin.H{ "你的输入不合法": "输入合法字符", }) } } //base64加密 func my_base64_router(c *gin.Context) { q, ok := c.GetQuery("q") if ok { c.JSON(http.StatusOK, gin.H{ "你的输入是:": q, "base64加密后结果是:": my_base64(q), }) } else { c.JSON(http.StatusOK, gin.H{ "你的输入不合法": "输入合法字符", }) } } func my_encode(s string) string { input := []byte(s) encodeString := base64.StdEncoding.EncodeToString(input) // fmt.Println(encodeString) return encodeString } func my_decode(s string) []byte { // 对上面的编码结果进行base64解码 decodeBytes, err := base64.StdEncoding.DecodeString(s) if err != nil { log.Fatalln(err) } // fmt.Println(string(decodeBytes)) return decodeBytes } func my_base64(s string) []byte { input := []byte(s) // 如果要用在url中,需要使用URLEncoding uEnc := base64.URLEncoding.EncodeToString([]byte(input)) // fmt.Println(uEnc) uDec, err := base64.URLEncoding.DecodeString(uEnc) if err != nil { log.Fatalln(err) } return uDec }
go run gindemo.go