Go Gin框架

一、Gin介绍
Gin是一个用Go编写的HTTPweb框架。它是一个类似于martini但拥有更好性能的API框架, 优于httprouter,速度提高了近 40 倍。点击此处访问Gin官方中文文档。

二、安装
1、安装Gin

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


2、代码中引入

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


代码

package mainimport "github.com/gin-gonic/gin"func main() {//go get -u github.com/gin-gonic/gin  执行get拉取包ginServer := gin.Default() //创建服务ginServer.GET("/hello", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "hello go"})})ginServer.POST("/user", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "创建成功"})})ginServer.PUT("/user", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "修改成功"})})ginServer.DELETE("/user", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "删除成功"})})//usl?userid=xxx&username=xxxginServer.GET("/user/info", func(context *gin.Context) {userid := context.Query("userId")username := context.Query("username")context.JSON(http.StatusOK, gin.H{"userid":   userid,"username": username,})})//  /user/info/1/zhangsanginServer.GET("/user/info/:userid/:username", func(context *gin.Context) {userid := context.Param("userId")username := context.Param("username")context.JSON(http.StatusOK, gin.H{"userid":   userid,"username": username,})})//json传递给后端ginServer.POST("/json", func(context *gin.Context) {data, _ := context.GetRawData()var m map[string]interface{}_ = json.Unmarshal(data, &m)context.JSON(http.StatusOK, m)})//表单提交ginServer.POST("/user/add", func(context *gin.Context) {username := context.PostForm("username")context.JSON(http.StatusOK, gin.H{"username": username,})})//404ginServer.NoRoute(func(context *gin.Context) {context.HTML(http.StatusNotFound, "404.html", nil)})//路由组orderGroup := ginServer.Group("/order"){orderGroup.GET("/list", func(context *gin.Context) {})orderGroup.POST("/add", func(context *gin.Context) {})}//调用中间件//	ginServer.Use(myHandler())定义全局中间件//  /user/info/1/zhangsanginServer.GET("/zjj", myHandler(), func(context *gin.Context) {usersession := context.MustGet("usersesion").(string)context.JSON(http.StatusOK, gin.H{"usersession": usersession,})})ginServer.Run(":8082")
}// 中间件  拦截器
func myHandler() gin.HandlerFunc {return func(context *gin.Context) {//通过中间件设置值,后续只要调用中间件都可以拿到这个参数context.Set("usersesion", "userid1")context.Next() //往下执行//context.Abort()//阻止执行}
}

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29918.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字OT训练系统常见问题解析

随着科技的飞速发展,数字化技术已经深入到医疗康复领域,数字OT(Occupational Therapy,职业疗法)训练系统作为一种创新性的康复工具,为康复患者提供了更加精准、个性化的治疗方案。然而,在使用过…

整数转换00

题目链接 整数转换 题目描述 注意点 A,B范围在[-2147483648, 2147483647]之间 解答思路 比较A、B每一个数位是否相同,如果不同则res 1比较每一位的方法是:将数字右移i位,再将其与1进行’&操作,就可以得到数字…

《逆贫大叔》:一部穿越时光的温情史诗

《逆贫大叔》:一部穿越时光的温情史诗 在历史的长河中,有些故事能够穿越时光的尘埃,直击人心。《逆贫大叔》就是这样一部作品,它不仅是一部电视剧,更是一段历史的缩影,一次心灵的触动。 背景设定&#xff1…

HTML静态网页成品作业(HTML+CSS)——企业摄影网介绍网页(3个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有3个页面。 二、作品演示 三、代…

VOCO原理

A Simple-yet-Effective Volume Contrastive Learning Framework for 3D Medical Image Analysis 一个简单而有效的三维医学图像分析体积对比学习框架 是通过自监督学习搭建的学习框架 自监督学习是无监督学习下的一个分支; 它通过从未标注的数据中生成伪标签来进…

金融科技在资产管理领域的创新实践

一、引言 随着科技的飞速发展,金融科技(FinTech)逐渐渗透到金融行业的各个领域,资产管理作为金融行业的核心之一,也迎来了金融科技带来的深刻变革。金融科技不仅改变了资产管理的传统模式,也极大地提高了资…

iOS ------ 对象的本质

一,OC对象本质,用clang编译main.m OC对象结构都是通过基础的C/C结构体实现的,我们通过创建OC文件及对象,将OC对象转化为C文件来探寻OC对象的本质。 代码: interface HTPerson : NSObject property(nonatomic,strong)…

MySQL全解(基础)-(MySQL的安装与配置,数据库基础操作(CRUD,聚合,约束,联合查询),索引,事务)

MySQL安装与配置 1.数据库介绍 存储数据用文件就可以了,为什么还要弄个数据库? 文件保存数据有以下几个缺点: 文件的安全性问题 文件不利于数据查询和管理 文件不利于存储海量数据 文件在程序中控制不方便数据库存储介质: 磁盘 内存 为了…

Python酷库之旅-比翼双飞情侣库(15)

目录 一、xlrd库的由来 二、xlrd库优缺点 1、优点 1-1、支持多种Excel文件格式 1-2、高效性 1-3、开源性 1-4、简单易用 1-5、良好的兼容性 2、缺点 2-1、对.xlsx格式支持有限 2-2、功能相对单一 2-3、更新和维护频率低 2-4、依赖外部资源 三、xlrd库的版本说明 …

架构模式——微内核架构的探索与展望

背景 在计算机科学和操作系统设计的广阔领域中,微内核架构以其独特的设计哲学和优势引起了广泛的关注。微内核,顾名思义,是一种精简至极的内核设计,旨在通过最小化内核的大小来增强系统的安全性、稳定性和可扩展性。本文将深入探…

QT基础 - 布局管理器间隔控件

目录 一. QVBoxLayout 二. QHBoxLayout 三. QGridLayout 四. QFormLayout 五. Spacers 六.总结 一. QVBoxLayout QVBoxLayout 主要用于将控件在垂直方向上进行排列。 它具有以下特点: 可以方便地管理和组织控件,使其按照垂直顺序依次排列。能够自动…

tensorboard基本使用

tensorboard基本介绍 conda下安装tensorboard 使用conda安装 conda install tensorboard2、tensorboard的基本使用 1、创建一个tensorboard-test.py 代码如下 # tensorboard-test.py from tensorboardX import SummaryWriter# 创建一个"my-log"的tensorboard日志…

Vue10-实战快速上手

实战快速上手 我们采用实战教学模式并结合ElementUI组件库,将所需知识点应用到实际中,以最快速度带领大家掌握Vue的使用; 1、创建工程 注意:命令行都要使用管理员模式运行 1、创建一个名为hello-vue的工程vue init webpack hel…

主机加固的几点建议

主机加固的几点建议 1、系统环境整体调查 系统环境调查主要是以下类目: (1)系统安全需求分析 (2)系统安全策略制订 (3)系统安全风险评估 2、制订主机加固方案 根据系统环境调查所产生的结…

Opencv高级图像处理

文章目录 Opencv高级图像处理图像坐标二值化滤波高斯滤波中值滤波 开闭运算检测霍夫圆检测边缘检测Canny边缘检测findContours区别傅里叶变换-高/低通滤波 直线检测 相机标定视频处理视频格式 模板摄像头处理(带参调节)单图片处理(带参调节&a…

随心而遇,跟着感觉走

分数限制下,选好专业还是选好学校? 24年高考结束,很多学生犹豫选择专业还是好学校,我的建议是,选择好学校。 本人体验来说,电子,工地,计科,数学,工科相关的…

MFC绘制哆啦A梦

OnPaint绘制代码 CPaintDC dc(this); // 用于绘画的设备上下文CRect rc;GetWindowRect(rc);int cxClient rc.Width();int cyClient rc.Height();// 辅助线HPEN hPen CreatePen(PS_DOT, 1, RGB(192, 192, 192));HPEN hOldPen (HPEN)SelectObject(dc, hPen);MoveToEx(dc, cxC…

微信小程序---登录

手机号登录 手机号快速验证和手机号实时验证区别 手机号快速验证组件,平台会对号码进行验证,但不保证是实时验证;收费0.0.3元手机号实时验证组件,在每次请求时,平台均会对用户选择的手机号进行实时验证。收费0.0.4元…

EasyCVR/EasyDSS无人机直播技术助力野生动物监测:开启野生动物保护新篇章

近日有新闻报道,一名挖掘机师傅在清理河道时,意外挖出一只稀有的扬子鳄,挖机师傅小心翼翼地将其放在一边,扬子鳄也顺势游回一旁的河道中。 随着人类对自然环境的不断探索和开发,野生动物及其栖息地的保护显得愈发重要。…

ROS(四)

write in advance 实验四,在经历了实验三的失败后,卷土重来。 幸运的是,此次实验很简单,很快就能搞定。 Part one 使用指令查看自己摄像头的设备号,如果报错,且你为虚拟机,可能是未在虚拟机处…