安装好go,新建一个空白文件夹,然后在当前目录执行:
go get -u github.com/gin-gonic/gin
拉取项目,然后新建一个文件main.go
,然后写代码:
package main //包名
import "github.com/gin-gonic/gin" //依赖
func main() { //入口方法
r := gin.Default() //初始化
r.GET("/ping", func(c *gin.Context) { //路由
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() //运行
}
默认端口为是8080
,可以在Run方法中加入端口号,如:r.Run(":8081")
即可修改端口号
关于路由有很多种写法,比如/user/:id
,就是当路径为/user/1
则可以访问到内部方法,这种属于一种静态化路由方式,想要拿到这个id,需要在方法里面通过Param
方法读取:
r.GET("/user/:id", func(c *gin.Context) {
name := c.Param("id")
c.String(200, "userid %s", name)
})
如果想要获取动态get参数 ,可以通过Query
方法来获取,例如访问/user?id=1
:
r.GET("/user", func(c *gin.Context) {
name := c.Query("id")
c.String(200, "userid %s", name)
})
如果想要获取post参数,可以通过PostForm
方法来获取:
r.GET("/user", func(c *gin.Context) {
name := c.PostForm("id")
c.String(200, "userid %s", name)
})
如果想输出json,可以使用c实例中得JSON方法来输出:
r.GET("/getjson", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "this is json string",
})
})
上传文件:
r.POST("/upload", func(c *gin.Context) {
file, err := c.FormFile("file") //获取文件对象
if err != nil {
c.String(500, "get form err: %s", err.Error())
return
}
filename := filepath.Base(file.Filename) //获取文件名
if err := c.SaveUploadedFile(file, filename); err != nil { //保存上传文件
c.String(http.StatusBadRequest, "upload file err: %s", err.Error())
return
}
c.String(http.StatusOK, "File %s uploaded successfully", file.Filename)
})
官方很多例子:https://github.com/gin-gonic/examples
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)