概述

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

测试

  1. 导包

    import "github.com/gin-gonic/gin"
    import "net/http"   //项目中使用了 http.StatusOK
    
  2. 步骤

    1. 注册一个路由器

      router := gin.Default()
      
    2. 注册路由处理

      router.GET("/", func(c *gin.Context) {c.String(http.StatusOK, "Hello World")
      })
      
    3. 运行(默认是8080端口)

      if true{router.Run()  //默认端口:8080     http://localhost
      }else{router.Run(":9999")  //指端端口:9999    http://localhost:9999
      }
      

切换输出的格式

  1. 返回json格式

    func (c *Context) JSON(code int, obj interface{})
    
  2. 返回xml格式
    func (c *Context) XML(code int, obj interface{})
    
  3. 返回yaml格式
    func (c *Context) YAML(code int, obj interface{})
    
  4. 返回string格式
    func (c *Context) String(code int, format string, values ...interface{})
    
  5. 渲染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简介相关推荐

  1. [golang gin框架] 6.Gin GORM简介以及安装

    介绍 GORM 是 Golang 的一个 orm 框架,简单说,ORM 就是通过实例对象的语法,完成关系型 数据库的操作的技术,是"对象-关系映射"(Object/Relation ...

  2. [golang gin框架] 27.Gin 商城项目-购物车

    1.先来看一个问题 购物车数据保持到哪里? 1.购物车数据保存在本地 (cookie或者 redis缓存中),下面统一保存到cookie中,保存到redis中和cookie中逻辑步骤其实都是一样的 2 ...

  3. [golang gin框架] 24.Gin 商城项目-redis讲解以及操作

    一.reids相关文章 Redis五种数据类型及其应用场景 REDIS中的缓存穿透,缓存击穿,缓存雪崩原因以及解决方案 redis实现用户签到,统计活跃用户,用户在线状态,用户留存率 [golang ...

  4. [golang gin框架] 29.Gin 商城项目-用户登录,注册操作

    一.用户登录,注册界面展示说明 先看登录,注册界面以及相关流程,再根据流程写代码,一般网站的登录,注册功能都会在一个页面进行操作,还有的是在几个页面进行操作,这里讲解在几个页面进行注册的操作,步骤如下 ...

  5. [golang gin框架] 16.Gin 商城项目-商品模块数据表ER图关系分析

    1.数据表ER图 2.数据表相关 (1).商品分类表相关 1).数据表 -- ---------------------------- -- Table structure for goods_cat ...

  6. gin框架的环境搭建和热加载

    为什么要学gin框架? Gin 是一个基于 Go 语言编写的 Web 框架,快速灵活.封装简单.运行速度快.使用也比较广泛.借助高性能的 httprouter,有着高性能和更快开发效率. 引入gin框 ...

  7. 【Gin框架】框架入门

    阅读目录 一.Gin 介绍 二.Gin 环境搭建 三.golang 程序的热加载 四.Gin 框架中的路由 4.1.路由概述 4.2.简单的路由配置 4.3.c.String().c.JSON().c ...

  8. Gin框架相关参考资料

    说明 在这篇文章中主要罗列或记录一下自己在Gin框架的学习过程所参考的资料或遇到的问题 Gin框架资料 Gin框架 github地址:https://github.com/gin-gonic/gin ...

  9. go语言学习(二)——Gin 框架简介

    GoWeb开发有很多框架,如Beego.Gin.Revel.Echo.IRis等,学习框架可以快速做开发,对比常见goweb框架,通过其github的活跃度,维护的team,生产环境中的使用率以及师兄 ...

  10. [Golang梦工厂]一个小项目带你学会GIN框架、JWT鉴权、swagger生成接口文档,看这一篇就够了

    前言 哈喽,大家好,我是asong,这是我的第八篇原创文章.听说你们还不会jwt.swagger,所以我带来一个入门级别的小项目.实现用户登陆.修改密码的操作.使用GIN(后台回复Golang梦工厂: ...

最新文章

  1. 计算机仿真实验用的教学软件是,AR增强现实教学软件,学习效果倍增
  2. 13.6 Thread类自定义线程类
  3. 一分钟搞定Java环境变量配置
  4. c++计算eigen随笔(8)-数组、矩阵、向量(1)
  5. 使用密码摘要生成器扩展JMeter
  6. 基于Memcached的Nginx服务器集群session共享
  7. 微信域名防红防屏蔽系统的原理 微信域名防屏蔽的注意点
  8. android eclipse 运行项目设置程序默认安装到sd卡,Android eclipse 运行项目设置程序默认安装到SD卡...
  9. easyexcel excel自定义列导出 格式导出
  10. java解析excel日期格式_JAVApoi读取excel无法识别自定义格式年月日时分秒
  11. 干货分享!12款响应式的移动网站模板免费下载
  12. keyberos认证问题导致GSS initiate failed
  13. esp-hosted方案落地
  14. uniapp小程序使用getUserProfile登录(获取昵称统一为‘微信用户’+头像为灰色头像)
  15. MAC双系统U盘安装方法
  16. 从平台到中台 | Elasticsearch 在蚂蚁金服的实践经验
  17. win7开机启动项设置_Win7系统电脑使用注册表查看开机启动项操作方法
  18. 2023电信天翼云高级解决方案架构师考试题库-最新版
  19. LeetCode 461. 汉明距离 (布赖恩·克尼根算法)
  20. Android 系统编译技巧

热门文章

  1. STM32学习之Flash包括主存储块、系统存储器和选项字节等部分理解
  2. 初识网络及socket编程基础
  3. python自动粘贴文字_在python中自动将文件内容复制到剪贴板并粘贴到纯文本文件中...
  4. 最新天选姬Q版桌宠V2.3+比原版更可爱
  5. 历年计算机二级等级考试真题,[历年全国计算机等级考试二级QBASIC部分真题]全国计算机二级...
  6. 基于SSM的家校通系统(Spring+SpringMVC+Mybatis+mysql)
  7. 中国人工智能学会通讯——人类作为“情感机器”——效用函数、情绪和社会偏好...
  8. PBI的Dax用法总结
  9. ElasticSearch核心语法及集群高可用搭建
  10. 专题:固体力学中应力与应变分析详解(1.应力分析 2.符号 3.一般的三维应力场)...