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,如果看到如下提示即成功。

完整代码
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{
"msg": "Hello world!",
})
})
r.Run(":8081")
}
Go语言库代码示例,欢迎star
https://github.com/pingyeaa/golang-examples
感谢大家的观看,如果觉得文章对你有所帮助,欢迎关注公众号「平也」,聚焦Go语言与技术原理。

Gin框架系列01:极速上手的更多相关文章
- Gin框架系列02:路由与参数
回顾 上一节我们用Gin框架快速搭建了一个GET请求的接口,今天来学习路由和参数的获取. 请求动词 熟悉RESTful的同学应该知道,RESTful是网络应用程序的一种设计风格和开发方式,每一个URI ...
- Gin框架系列03:换个姿势理解中间件
什么是中间件 中间件,英译middleware,顾名思义,放在中间的物件,那么放在谁中间呢?本来,客户端可以直接请求到服务端接口. 现在,中间件横插一脚,它能在请求到达接口之前拦截请求,做一些特殊处理 ...
- Java 集合系列 01 总体框架
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
- [系列] Gin框架 - 数据绑定和验证
目录 概述 推荐阅读 概述 上篇文章分享了 Gin 框架使用 Logrus 进行日志记录,这篇文章分享 Gin 框架的数据绑定与验证. 有读者咨询我一个问题,如何让框架的运行日志不输出控制台? 解决方 ...
- gin框架教程:代码系列demo地址
gin框架教程代码地址: https://github.com/jiujuan/gin-tutorial demo目录: 01quickstart 02parameter 03route 04midd ...
- 01 . Go框架之Gin框架从入门到熟悉(路由和上传文件)
Gin框架简介 Gin是使用Go/Golang语言实现的HTTP Web框架, 接口简洁, 性能极高,截止1.4.0版本,包含测试代码,仅14K, 其中测试代码9K, 也就是说测试源码仅5k左右, 具 ...
- GoWeb之gin框架
Gin 是一个 go 写的 web 框架,具有高性能的优点.官方地址:https://github.com/gin-gonic/gin 一.快速上手 安装 go mod init go get -u ...
- java io系列01之 "目录"
java io 系列目录如下: 01. java io系列01之 "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括 ...
- Google C++测试框架系列:入门
Google C++测试框架系列:入门 原始链接:V1_6_Primer 注 GTest或者Google Test: Google的C++测试框架. Test Fixtures: 这个词实在找不到对应 ...
随机推荐
- 【echarts3】 折线图我踩过的那些坑 (tooltip 设置,line 单个点/散点不显示问题)
echarts 折线图小技巧 echarts 折线图功能丰富且官方文档详细易懂,上手比较容易,这篇文章将分享一些项目中踩过的坑,示例主要以多条曲线为主,对大家完成一些 曲线.tooltip 和 mar ...
- 动手搞一个Promise
Javascript语言的执行环境是"单线程"(single thread).所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任 ...
- volatile关键字的理解
volatile是java语言提供的一种稍弱的同步机制,它的作用是能够保证被volatile修饰的变量,每个线程在获取它的值时都能获取到最新的值. 要理解这个原理首先要知道java内存模型:每个线程都 ...
- IDEA激活码(可用2100年,亲测有效)
三步骤: 1.下载rar包 2.将rar中bin包内容替换IDEA安装目录下bin内容,然后编辑idea.exe.vmoptions和idea64.exe.vmoptions文件,编辑内容一样 将最后 ...
- 基于Modelsim的直方图统计算法仿真
一.前言 本篇主要针对牟新刚编著<基于FPGA的数字图像处理及应用>第六章第五节中直方图统计相关类容进行总结,包括代码实现及 基于Modelsim的仿真.书读百遍,其意自现. 2020-0 ...
- CyclicBarrier源码探究 (JDK 1.8)
CyclicBarrier也叫回环栅栏,能够实现让一组线程运行到栅栏处并阻塞,等到所有线程都到达栅栏时再一起执行的功能."回环"意味着CyclicBarrier可以多次重复使用,相 ...
- 回想笔记 瞎比比 域名注册 解析绑定ip 下载证书 设置证书 重定向http到https请求
2019.7.27 回想笔记 拥有腾讯云服务器一台 阿里云注册5元域名,进行备案 完成之后 使用解析 绑定服务器ip地址 ,使用域名可以访问到web服务器而不是通过直接暴露ip地址进行访问 证书购买 ...
- ubuntu16.04 + caffe + SSD + gpu 安装
昨天我们买好了硬件,今天我们开始安装caffe了,我本人安装过caffe不下10次,每次都是一大堆问题,后来终于总结了关键要点,就是操作系统. 1. 千万不要用ubuntu17.10来安装, 2. 最 ...
- Python3 面向对象之:多继承
多继承 class ShenXian: # 神仙 def fei(self): print("神仙都会⻜") class Monkey: # 猴 def chitao(self): ...
- 新手学黑客攻防-黑客攻击电脑方式和认识IP地址
听说过黑客,没见过黑客,从最基础的开始学习,让我能在互联网中保护自己的隐私安全和信息安全. 黑客攻击电脑方式 黑客攻击的方式多种多样,但常见的只有以下几种,基本上每个黑客都会用到: 网络报文嗅探 网络 ...