Go Web开发框架 Gin

Go Web开发框架 Gin

10.1 Gin

现在的开发模式是后端只提供一份数据,然后不管是移动端还是网页端,如果想要展现出不同的效果,可以自己根据这份数据个性化构建展示效果

下载Gin package

GOPROXY=https://goproxy.cn
go get -u github.com/gin-gonic/gin

引入使用即可

import "github.com/gin-gonic/gin"

//使用Gin框架

func main() {

	r := gin.Default() //返回默认的路由引擎

	//访问路径以及返回
	r.GET("/hello", sayhello)

	//启动
	//封装了http.ListenAndServe
	r.Run(":8080")
}

func sayhello(c *gin.Context) {
	c.JSON(200, gin.H{
		"message": "Hello Golang",
	})
}

10.2 RESTful架构

REST是客户端和服务器之间进行交互的时候,使用HTTP协议中的四个请求方法代表不同的动作,更多的是一种规范

GET获取资源
POST新建资源
PUT更新资源
DELETE删除资源
r.GET("/book",...)
r.POST("/book",...)
r.PUT("/book",...)
r.DELETE("/book",...)

浏览器默认只能发送GET和POST请求,如果没有通过AJAX的话,那用postman作为测试工具

10.3 Gin框架模版创建、解析和渲染

我们仍然先按照三步走操作

第一步,定义模版文件index.html




    
    
    
    posts/index


{
  {.title}} //在模版中使用哈希表的键来传参


第二步和第三步,解析模版和渲染模版

func main() {
	//创建一个gin模版引擎路由
	r := gin.Default()

	//解析模版
	r.LoadHTMLFiles("./templates/index.tmpl")

	//创建并处理GET请求
	r.GET("/index", func(c *gin.Context) {//指定路径和handler
		c.HTML(http.StatusOK, "index.tmpl", gin.H{ //模版渲染,向模版中传入参数
			"title": "shiyivei.com",
		})
	})

	r.Run(":8080") //启动服务
}

渲染多个模版

可以通过define先重命名多个名字一样的模版文件,然后再解析

{
  {define "posts/index.tmpl"}} //重命名



    
    
    
    posts/index


{
  {.title}}


{
  {end}} //不要忘了end

解析

//解析模版
	r.LoadHTMLFiles("./templates/index.tmpl","templates/users/index.tmpl")

但是,当文件过多时,可以通过指定文件夹的方式加载所有tmpl文件

//解析模版
	//r.LoadHTMLFiles("./templates/index.tmpl", "templates/users/index.tmpl")
	r.LoadHTMLGlob("templates/**/*")

同样我们也需要多个path和handler来处理

func main() {
	//创建一个gin模版引擎路由
	r := gin.Default()

	//解析模版
	//r.LoadHTMLFiles("./templates/index.tmpl", "templates/users/index.tmpl")
	r.LoadHTMLGlob("templates/**/*")

	//创建并处理GET请求
	r.GET("/posts/index", func(c *gin.Context) {
		c.HTML(http.StatusOK, "posts/index.tmpl", gin.H{ //模版渲染
			"title": "posts/index.tmpl",
		})
	})
	//创建并处理GET请求
	r.GET("/users/index", func(c *gin.Context) {
		c.HTML(http

你可能感兴趣的:(工具,golang,前端,postman,中间件,Gin)