【Gin框架一】Gin简介
概述
Gin是一个golang的微框架,封装比较优雅,API友好。具有快速灵活,容错方便等特点。Gin自身的net/http足够简单,性能也非常不错
Gin下载: https://github.com/gin-gonic/gin
英文文档:https://gin-gonic.com/docs/
安装
go get -u github.com/gin-gonic/gin
测试
导包
import "github.com/gin-gonic/gin" import "net/http" //项目中使用了 http.StatusOK
步骤
注册一个路由器
router := gin.Default()
注册路由处理
router.GET("/", func(c *gin.Context) {c.String(http.StatusOK, "Hello World") })
运行(默认是8080端口)
if true{router.Run() //默认端口:8080 http://localhost }else{router.Run(":9999") //指端端口:9999 http://localhost:9999 }
切换输出的格式
- 返回json格式
func (c *Context) JSON(code int, obj interface{})
- 返回xml格式
func (c *Context) XML(code int, obj interface{})
- 返回yaml格式
func (c *Context) YAML(code int, obj interface{})
- 返回string格式
func (c *Context) String(code int, format string, values ...interface{})
- 渲染html模板后返回
func (c *Context) HTML(code int, name string, obj interface{})
状态码
这个状态码不仅可以手动指定一个数字,比如200,500,404;也可以使用http包中的状态码,语义化的状态码更好理解;
http-status文档:http://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
http状态码详解:http://tool.oschina.net/commons?type=5
HTTP状态码的分类
分类 | 描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
常用的状态码
200 请求成功
404 请求失败,服务器无法根据客户端的请求找到资源(网页)
500 服务器内部错误,无法完成请求
项目中导入
import "net/http"
package httpconst ( StatusOK = 200 // RFC 7231, 6.3.1StatusMultipleChoices = 300 // RFC 7231, 6.4.1StatusNotFound = 404 // RFC 7231, 6.5.4StatusInternalServerError = 500 // RFC 7231, 6.6.1
)
示例
package mainimport("github.com/gin-gonic/gin""net/http""fmt"
)func main() {//1. 注册一个路由器router := gin.Default()//2. 注册路由处理//默认请求 http://localhost:8080/router.GET("/", func(c *gin.Context) {c.String(http.StatusOK, fmt.Sprintln(gin.H{"data":"默认请求"}))})//post 请求 string 格式话 http://localhost:8080/stringrouter.GET("/string", func(c *gin.Context) {c.String(http.StatusOK, fmt.Sprintln("post 请求 string 格式话"))})//post 请求 json 格式话 http://localhost:8080/jsonrouter.POST("/json",func (c *gin.Context) {c.JSON(http.StatusOK,gin.H{"name":"post 请求 json 格式话","age":18})})//delete 请求 xml 格式化 http://localhost:8080/xmlrouter.DELETE("/xml",func (c *gin.Context) {c.XML(http.StatusOK,gin.H{"name":"delete 请求 xml 格式化","age":18})})//patch 请求 yaml 格式化 http://localhost:8080/yamlrouter.PATCH("/yaml",func (c *gin.Context) {c.YAML(http.StatusOK,gin.H{"name":"patch 请求 yaml 格式化","age":18})})//get请求 html界面显示 http://localhost:8080/htmlrouter.GET("/html",func (c *gin.Context) {router.LoadHTMLGlob("../view/tem/index/*") //这是前台的index// router.LoadHTMLGlob("../view/tem/admin/*") //这是后台的index// router.LoadHTMLFiles("../view/tem/index.html") //指定加载某些文件c.HTML(http.StatusOK,"index.html",nil)})//3. 运行(默认是8080端口)router.Run()
}
前端
路径:$GOPATH/src/view/tem/index/
<!DOCTYPE html>
<html lang="zh-cn" dir="ltr"><head><meta charset="utf-8"><title></title></head><body><h1>前端 index</h1></body>
</html>
【Gin框架一】Gin简介相关推荐
- [golang gin框架] 6.Gin GORM简介以及安装
介绍 GORM 是 Golang 的一个 orm 框架,简单说,ORM 就是通过实例对象的语法,完成关系型 数据库的操作的技术,是"对象-关系映射"(Object/Relation ...
- [golang gin框架] 27.Gin 商城项目-购物车
1.先来看一个问题 购物车数据保持到哪里? 1.购物车数据保存在本地 (cookie或者 redis缓存中),下面统一保存到cookie中,保存到redis中和cookie中逻辑步骤其实都是一样的 2 ...
- [golang gin框架] 24.Gin 商城项目-redis讲解以及操作
一.reids相关文章 Redis五种数据类型及其应用场景 REDIS中的缓存穿透,缓存击穿,缓存雪崩原因以及解决方案 redis实现用户签到,统计活跃用户,用户在线状态,用户留存率 [golang ...
- [golang gin框架] 29.Gin 商城项目-用户登录,注册操作
一.用户登录,注册界面展示说明 先看登录,注册界面以及相关流程,再根据流程写代码,一般网站的登录,注册功能都会在一个页面进行操作,还有的是在几个页面进行操作,这里讲解在几个页面进行注册的操作,步骤如下 ...
- [golang gin框架] 16.Gin 商城项目-商品模块数据表ER图关系分析
1.数据表ER图 2.数据表相关 (1).商品分类表相关 1).数据表 -- ---------------------------- -- Table structure for goods_cat ...
- gin框架的环境搭建和热加载
为什么要学gin框架? Gin 是一个基于 Go 语言编写的 Web 框架,快速灵活.封装简单.运行速度快.使用也比较广泛.借助高性能的 httprouter,有着高性能和更快开发效率. 引入gin框 ...
- 【Gin框架】框架入门
阅读目录 一.Gin 介绍 二.Gin 环境搭建 三.golang 程序的热加载 四.Gin 框架中的路由 4.1.路由概述 4.2.简单的路由配置 4.3.c.String().c.JSON().c ...
- Gin框架相关参考资料
说明 在这篇文章中主要罗列或记录一下自己在Gin框架的学习过程所参考的资料或遇到的问题 Gin框架资料 Gin框架 github地址:https://github.com/gin-gonic/gin ...
- go语言学习(二)——Gin 框架简介
GoWeb开发有很多框架,如Beego.Gin.Revel.Echo.IRis等,学习框架可以快速做开发,对比常见goweb框架,通过其github的活跃度,维护的team,生产环境中的使用率以及师兄 ...
- [Golang梦工厂]一个小项目带你学会GIN框架、JWT鉴权、swagger生成接口文档,看这一篇就够了
前言 哈喽,大家好,我是asong,这是我的第八篇原创文章.听说你们还不会jwt.swagger,所以我带来一个入门级别的小项目.实现用户登陆.修改密码的操作.使用GIN(后台回复Golang梦工厂: ...
最新文章
- 计算机仿真实验用的教学软件是,AR增强现实教学软件,学习效果倍增
- 13.6 Thread类自定义线程类
- 一分钟搞定Java环境变量配置
- c++计算eigen随笔(8)-数组、矩阵、向量(1)
- 使用密码摘要生成器扩展JMeter
- 基于Memcached的Nginx服务器集群session共享
- 微信域名防红防屏蔽系统的原理 微信域名防屏蔽的注意点
- android eclipse 运行项目设置程序默认安装到sd卡,Android eclipse 运行项目设置程序默认安装到SD卡...
- easyexcel excel自定义列导出 格式导出
- java解析excel日期格式_JAVApoi读取excel无法识别自定义格式年月日时分秒
- 干货分享!12款响应式的移动网站模板免费下载
- keyberos认证问题导致GSS initiate failed
- esp-hosted方案落地
- uniapp小程序使用getUserProfile登录(获取昵称统一为‘微信用户’+头像为灰色头像)
- MAC双系统U盘安装方法
- 从平台到中台 | Elasticsearch 在蚂蚁金服的实践经验
- win7开机启动项设置_Win7系统电脑使用注册表查看开机启动项操作方法
- 2023电信天翼云高级解决方案架构师考试题库-最新版
- LeetCode 461. 汉明距离 (布赖恩·克尼根算法)
- Android 系统编译技巧
热门文章
- STM32学习之Flash包括主存储块、系统存储器和选项字节等部分理解
- 初识网络及socket编程基础
- python自动粘贴文字_在python中自动将文件内容复制到剪贴板并粘贴到纯文本文件中...
- 最新天选姬Q版桌宠V2.3+比原版更可爱
- 历年计算机二级等级考试真题,[历年全国计算机等级考试二级QBASIC部分真题]全国计算机二级...
- 基于SSM的家校通系统(Spring+SpringMVC+Mybatis+mysql)
- 中国人工智能学会通讯——人类作为“情感机器”——效用函数、情绪和社会偏好...
- PBI的Dax用法总结
- ElasticSearch核心语法及集群高可用搭建
- 专题:固体力学中应力与应变分析详解(1.应力分析 2.符号 3.一般的三维应力场)...