zoukankan      html  css  js  c++  java
  • Gin框架系列01:极速上手

    Gin是什么?

    Gin是Go语言编写的web框架,具备中间件、崩溃处理、JSON验证、内置渲染等多种功能。

    准备工作

    本系列演示所有代码都在Github中,感兴趣的同学可以自行查阅,欢迎大家一起完善。

    https://github.com/pingyeaa/golang-examples/tree/master/gin

    没有安装配置Go语言环境的同学请先自行安装,这里不再赘述。首先,我们来创建工作目录gin

    mkdir gin && cd gin

    然后用go mod命令初始化项目,go mod是Go语言的包管理工具,官方推荐使用,有了它就不再受GOPATH的限制,可以在任何目录初始化项目。

    go mod init gin

    接下来安装gin库。

    go get -u github.com/gin-gonic/gin

    创建演示代码的入口文件main.go,当前项目结构大致如下。

    .
    ├── go.mod
    ├── go.sum
    └── main.go

    编写代码

    工作准备就绪之后,来开始今天的代码编写,以经典代码hello word为例。

    实例化一个gin对象

    r := gin.Default()

    Default方法的主要作用是实例化一个带有日志、故障恢复中间件的引擎。

    func Default() *Engine {
     debugPrintWARNINGDefault()
     engine := New()
     engine.Use(Logger(), Recovery())
     return engine
    }

    定义请求

    定义一个GET请求的路由,参数一是路由地址,也就是在浏览器访问的相对路径,参数二是一个匿名函数,函数内部用于业务逻辑处理。

    r.GET("/hello", func(c *gin.Context) {

    })

    我们就在函数内调用JSON方法返回数据。JSON的操作非常简单,参数一是状态码,参数二是JSON的内容。

    r.GET("/hello", func(c *gin.Context) {
      c.JSON(200, gin.H{
        "msg": "Hello world!",
      })
    })

    JSON内容可以通过gin提供的H方法来构建,非常方便。

    // H is a shortcut for map[string]interface{}
    type H map[string]interface{}

    运行

    Run方法最终会调用内置http库的ListenAndServe方法来监听端口,如果不传参数默认监听80端口,也可以通过参数来变更地址和端口。

    r.Run(":8081")

    测试

    在浏览器访问localhost:8081,如果看到如下提示即成功。

     

    file

    完整代码

    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() // 监听并在 0.0.0.0:8080 上启动服务
    }
    

    设置gopath后,会把扩展下载到gopath下面  

  • 相关阅读:
    part11-1 Python图形界面编程(Python GUI库介绍、Tkinter 组件介绍、布局管理器、事件处理)
    part10-3 Python常见模块(正则表达式)
    Cyclic Nacklace HDU
    模拟题 Right turn SCU
    状态DP Doing Homework HDU
    Dp Milking Time POJ
    区间DP Treats for the Cows POJ
    DP Help Jimmy POJ
    Dales and Hills Gym
    Kids and Prizes Gym
  • 原文地址:https://www.cnblogs.com/brady-wang/p/13030306.html
Copyright © 2011-2022 走看看