GIN实例讲解

news/2024/6/20 20:26:22/文章来源:https://blog.csdn.net/m0_48711099/article/details/137293792

第一个gin程序

package mainimport ("github.com/gin-gonic/gin"
)func main() {// 创建一个 Gin 引擎实例r := gin.Default()// 定义一个 GET 请求的路由,当访问 /hello 路径时执行匿名函数r.GET("/hello", func(c *gin.Context) {// 获取查询参数中的 name 参数值,默认为 "Guest"name := c.Query("name")if name == "" {name = "Guest"}// 向客户端返回一个问候语c.String(200, "Hello, %s!", name)})// 启动 Gin 应用,默认监听在 0.0.0.0:8080 地址r.Run()
}

导入 github.com/gin-gonic/gin 包,引入 Gin 框架。
创建一个默认的 Gin 引擎实例 r。
使用 r.GET() 方法定义一个 GET 请求的路由,当访问 /hello 路径时执行匿名函数。
在匿名函数中,通过 c.Query(“name”) 方法获取查询参数中的 name 参数值,如果未提供则默认为 “Guest”。
使用 c.String() 方法向客户端返回一个字符串响应,包含个性化的问候语。
使用 r.Run() 方法启动 Gin 应用,默认监听在 0.0.0.0:8080 地址。

在 Web 开发中,路由是指将客户端请求映射到处理程序的过程。简单来说,路由决定了客户端请求的 URL 应该由哪一段代码来处理。在 Web 应用程序中,通常会定义一系列的路由规则,以指定不同的 URL 请求应该由哪些处理程序来处理。

在上面的示例代码中,r.GET() 方法就是用来定义一个 GET 请求的路由。它告诉 Gin 框架当收到一个 GET 请求,并且请求的路径匹配指定的路径时,应该执行指定的处理函数。在这个例子中,我们定义了一个 GET 请求的路由 /hello,当客户端请求该路径时,会执行匿名函数来处理请求,并返回一个问候语。

至于为什么叫 GET 请求的路由,是因为在 HTTP 协议中,GET 是一种常用的请求方法之一,用于从服务器获取资源。除了 GET 请求外,还有 POST、PUT、DELETE 等请求方法,它们分别用于不同的操作。在路由定义时,我们可以根据不同的请求方法来定义不同的路由规则,以实现不同的功能。

POST 请求路由

package mainimport ("github.com/gin-gonic/gin"
)func main() {r := gin.Default()// 定义一个 POST 请求的路由,当收到 /login 路径的 POST 请求时执行匿名函数r.POST("/login", func(c *gin.Context) {// 从请求的表单参数中获取用户名和密码username := c.PostForm("username")password := c.PostForm("password")// 简单验证用户名和密码,并返回相应的响应if username == "admin" && password == "password" {c.String(200, "Login success")} else {c.String(401, "Login failed")}})r.Run()
}

在浏览器中发送一个 POST 请求到 http://localhost:8080/login,并且传递合适的用户名和密码参数,将会触发执行匿名函数,并返回相应的响应。

PUT 请求路由

package mainimport ("github.com/gin-gonic/gin"
)func main() {r := gin.Default()// 定义一个 PUT 请求的路由,当收到 /users/:id 路径的 PUT 请求时执行匿名函数r.PUT("/users/:id", func(c *gin.Context) {// 从请求的路径参数中获取用户 IDid := c.Param("id")// 从请求的表单参数中获取更新的用户信息name := c.PostForm("name")email := c.PostForm("email")// 根据用户 ID 更新用户信息,并返回相应的响应// 这里简化为直接返回更新成功的消息c.String(200, "Update user %s success", id)})r.Run()
}

发送一个 PUT 请求到 http://localhost:8080/users/123,并且传递合适的更新信息,将会触发执行匿名函数,并返回相应的响应。

DELETE 请求路由

package mainimport ("github.com/gin-gonic/gin"
)func main() {r := gin.Default()// 定义一个 DELETE 请求的路由,当收到 /users/:id 路径的 DELETE 请求时执行匿名函数r.DELETE("/users/:id", func(c *gin.Context) {// 从请求的路径参数中获取用户 IDid := c.Param("id")// 根据用户 ID 删除用户信息,并返回相应的响应// 这里简化为直接返回删除成功的消息c.String(200, "Delete user %s success", id)})r.Run()
}

发送一个 DELETE 请求到 http://localhost:8080/users/123,将会触发执行匿名函数,并返回相应的响应。

这些示例展示了如何使用不同的路由方法来处理不同类型的 HTTP 请求,并根据请求的参数和路径来执行相应的操作。

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

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

相关文章

Object类的方法-(重点)equals()

根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。这里我们主要关注其中的6个: 1、(重点)equals() : 基本类型比较值:只要两个变量的值相等,即为true。 int a5; if(a6){…} 引用类型比较引用(是否指向同一个对象…

【Flume】尚硅谷学习笔记

实时监控目录下多个新文件 本案例是将虚拟机本地文件进行实时监控,并将上传的数据实时上传到HDFS中。 TAILDIR SOURCE【实现多目录监控、断点续传】 监视指定的文件,一旦检测到附加到每个文件的新行,就几乎实时地跟踪它们。如果正在写入新行…

空间数据结构(四叉树,八叉树,BVH树,BSP树,K-d树)

下文参考:https://www.cnblogs.com/KillerAery/p/10878367.html 游戏编程知识课程 - 四分树(quadtree)_哔哩哔哩_bilibili 利用空间数据结构可以加速计算,是重要的优化思想。空间数据结构常用于场景管理,渲染,物理,游…

CSS使用clip-path实现元素动画

前言: 在日常开发当中,如果想要开发多边形,一般都需要多个盒子或者伪元素的帮助,有没有一直办法能只使用一个盒子实现呢? 有的:css裁剪 目录 前言: clip-path到底是什么? clip-pa…

基于springboot+vue+Mysql的企业客户信息反馈平台

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Windows 电脑麦克风 自动启用/禁用 小玩具!

WinMicrophone Windows 系统的 麦克风设备(启用/禁用)切换驱动!它是小巧且快速的,它能够自动的检测并切换麦克风的情况。 您可以在软件包仓库中找到发布版本的exe包,无需安装!其能够大大增大您在Windows中…

6.3物联网RK3399项目开发实录-驱动开发之I2C 使用(wulianjishu666)

物联网开发源码案例集: 链接:https://pan.baidu.com/s/1kfPDpYZpm_G0GBLAup3KTQ?pwdvgvv I2C 使用 简介 AIO-3399J 开发板上有 9 个片上 I2C 控制器,各个 I2C 的使用情况如下表: 本文主要描述如何在该开发板上配置 I2C。 配置…

WebCopilot:一款功能强大的子域名枚举和安全漏洞扫描工具

关于WebCopilot WebCopilot是一款功能强大的子域名枚举和安全漏洞扫描工具,该工具能够枚举目标域名下的子域名,并使用不同的开源工具检测目标存在的安全漏洞。 工具运行机制 WebCopilot首先会使用assetsfinder、submaster、subfinder、accumt、finddom…

大数据学习第十二天(hadoop概念)

1、服务器之间数据文件传递 1)服务器之间传递数据,依赖ssh协议 2)http协议是web网站之间的通讯协议,用户可已通过http网址访问到对应网站数据 3)ssh协议是服务器之间,或windos和服务器之间传递的数据的协议…

C语言第三十九弹---预处理(上)

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 预处理 1、预定义符号 2、#define定义常量 3、#define定义宏 4、带有副作用的宏参数 5、宏替换的规则 6、宏和函数的对比 总结 在C语言中,预处…

阿里云2核4G云服务器支持多少人同时在线?并发数计算?

阿里云2核4G服务器多少钱一年?2核4G配置1个月多少钱?2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2…

蓝奏云直链获取在线解析网站源码

源码简介 蓝奏云直链获取在线解析网站源码 蓝奏云链接解析 本地API接口 支持有无密码和短期直链和永久直链,同时还可以显示文件名和大小。 这个解析器无需数据库即可搭建,API接口已经本地化,非常简单易用。 安装环境 php5.6 搭建教程 …

在编程中使用中文到底该不该??

看到知乎上有个热门问题,为什么很多人反对中文在编程中的使用? 这个问题有几百万的浏览热度,其中排名第一的回答非常简洁,我深以为然: 在国内做开发,用中文写注释、写文档,是非常好的习惯&…

前端工程师————HTML5学习

HTML5基础 开发工具很多,其中Hbulider较好用,下载网址如下: DCloud - HBuilder、HBuilderX、uni-app、uniapp、5、5plus、mui、wap2app、流应用、HTML5、小程序开发、跨平台App、多端框架 html表示整个页面 head表示搜素框 body表示内容 ti…

Java练习

这个练习我用到了继承,多态和封装。 1.继承: Animal 类是一个抽象类,它有两个子类 Dog 和 Cat。 Dog 和 Cat 分别继承自 Animal 类,因此它们可以使用 Animal 类中定义的属性和方法,同时也可以有自己特有的属性和方法。…

【Java代码审计】SSTI模板注入篇

【Java代码审计】SSTI模板注入篇 1.概述2.Velocity 模板引擎3.Thymeleaf 模板注入复现普通url作为视图 4.SSTI 漏洞修复白名单控制跳转模版设置response参数 1.概述 模板引擎支持使用静态模板文件,在运行时用 HTML 页面中的实际值替换变量/占位符,从而让…

C++要学到什么程度才能找到实习?

在考虑 C 学习到何种程度可以找到实习时,以下是一些具体的方向和建议。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给个评论222,私信22,我…

java学习之路-数组定义与使用

目录 ​编辑 1.什么是数组 2.数组的创建及其初始化 2.1数组的创建 2.2数组的初始化 3.数组的使用 3.1数组元素访问 3.2遍历数组 4.数组是引用类型 4.1jvm的内存分布 4.2基本类型变量与引用类型变量的区别 4.3引用变量详解 4.4 null 5.数组的使用场景 5.1存储数据 5…

使用Vue实现CSS过渡和动画

01-初识动画和过渡 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>使用vue实现css过渡和动画&l…

数据结构——遍历二叉树和线索二叉树,树和森林

目录 1.遍历的算法实现 1.先序遍历 代码示例&#xff1a; 2.中序遍历 代码示例&#xff1a; 3.后序遍历 代码示例&#xff1a; 4.遍历算法的分析 2.遍历二叉树的非递归算法 1.中序遍历非递归算法 代码示例&#xff1a; 3.二叉树的层次遍历 代码示例&#xff1a; 4.二…