简单示例
import (
"github.com/gin-gonic/gin"
"k8s.io/klog/v2"
)
func main() {
// 默认为 debug 模式,设置为发布模式
gin.SetMode(gin.ReleaseMode)
engine := gin.Default()
initRouter(engine)
// 默认端口":8080"
// 可以自定义端口:如:engine.Run(":6666")
err := engine.Run()
if err != nil {
klog.Fatalf("...")
}
}
func initRouter(r *gin.Engine) {
groupName := r.Group("/v1/test")
{
groupName.GET("/get/kind/:kindName", TestGet)
groupName.POST("/post/kind/:kindName", TestPost)
}
}
get 传参
func TestGet(c *gin.Context) {
// curl http://localhost:8080/v1/test/get/kind/bingdwendwen
// name equals "bingdwendwen"
name:= c.Param("kindName")
// curl http://localhost:8080/v1/test/get/kind/bingdwendwen?keyword=key
// 获取参数,并设置默认值
page := c.DefaultQuery("page", "1")
// 不设置默认值
keyword := c.Query("keyword")
// 获取请求头信息
ct := c.GetHeader("Content-Type")
// 设置请求头信息
ua := c.Header("User-Agent","Mozilla/5.0")
c.JSON(http.StatusOK, gin.H{
"name_": name,
"page_": page,
"keyword_": keyword,
"content-type_": ct,
"user-agent_": ua,
})
}
post 传参
func TestPost(c *gin.Context) {
// 获取参数,并设置默认值
page := c.DefaultPostForm("page", "1")
// 不设置默认值
keyword := c.PostForm("keyword")
c.JSON(http.StatusOK, gin.H{
"name_": name,
"page_": page,
"keyword_": keyword,
})
}