GIN实例讲解
第一个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 请求,并根据请求的参数和路径来执行相应的操作。
相关文章:
GIN实例讲解
第一个gin程序 package mainimport ("github.com/gin-gonic/gin" )func main() {// 创建一个 Gin 引擎实例r : gin.Default()// 定义一个 GET 请求的路由,当访问 /hello 路径时执行匿名函数r.GET("/hello", func(c *gin.Context) {// 获取查询…...
开源充电桩设备监控系统技术解决方案
开源 | 慧哥充电桩平台V2.5.2(支持 汽车 电动自行车 云快充1.5、云快充1.6 微服务 ) SpringBoot设备监控系统解决方案 一、引言 1.项目背景 随着物联网技术的快速发展,设备的智能化和网络化程度日益提高。在现代工业和信息化的背景下&#x…...
环形链表--极致的简便
一、要求 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&a…...
WPF中TextWrapping
在 WPF(Windows Presentation Foundation)中,TextWrapping 是一个与文本布局相关的属性,用于控制文本在遇到容器边界时是否自动换行。这个属性常用于文本展示控件,如 TextBlock、TextBox、Label 等,以确保文…...
Win10 下 git error unable to create file Invalid argument 踩坑实录
原始解决方案参看:https://stackoverflow.com/questions/26097568/git-pull-error-unable-to-create-file-invalid-argument 本问题解决于 2024-02-18,使用 git 版本 2.28.0.windows.1 解决方案 看 Git 抛出的出错的具体信息,比如如下都来自…...
简化备案域名查询的最新API接口
随着互联网的发展,越来越多的网站和域名被注册和备案。备案域名查询是一个非常重要的功能,可以帮助用户在特定时间段内查询已备案的域名信息。现在,我将介绍一个简化备案域名查询的最新API接口,该接口可以帮助用户快速查询备案域名…...
基于SpringBoot和Vue的校园周边美食探索以及分享系统
今天要和大家聊的是基于SpringBoot和Vue的校园周边美食探索以及分享系统 !!! 有需要的小伙伴可以通过文章末尾名片咨询我哦!!! 💕💕作者:李同学 💕…...
TiDB单机版安装和连接访问
TiDB单机版安装和连接访问 1、下载 $wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz 2、解压缩 $tar -zxvf tidb-latest-linux-amd64.tar.gz 3、启动TiDB 启动PD $./bin/pd-server --data-dirpd --log-filepd.log 启动tikv $./bin/tikv-server --pd…...
Spark-Scala语言实战(13)
在之前的文章中,我们学习了如何在spark中使用键值对中的keys和values,reduceByKey,groupByKey三种方法。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢…...
Android compose 使用指纹验证
基于compose进行指纹验证 点击按钮进行验证 Button(onClick {var passed falseval biometic BiometricPrompt.Builder(applicationContext).setTitle("使用指纹解锁App").setSubtitle("证明你是手机的主人").setNegativeButton("取消验证",…...
开源模型应用落地-chatglm3-6b模型小试-入门篇(一)
一、前言 刚开始接触AI时,您可能会感到困惑,因为面对众多开源模型的选择,不知道应该选择哪个模型,也不知道如何调用最基本的模型。但是不用担心,我将陪伴您一起逐步入门,解决这些问题。 在信息时代…...
C++实现单例模式
#include <iostream> class Singleton { private: static Singleton* instance; // 指向单例实例的指针 Singleton() {} // 私有构造函数 public: // 获取单例对象的唯一全局访问点 static Singleton* getInstance() { if (instance nullpt…...
虚幻UE5智慧城市全流程开发教学
一、背景 这几年,智慧城市/智慧交通/智慧水利等飞速发展,骑士特意为大家做了一个这块的学习路线。 二、这是学习大纲 1.给虚幻UE5初学者准备的智慧城市/数字孪生蓝图开发教程 https://www.bilibili.com/video/BV1894y1u78G 2.UE5数字孪生蓝图开发教学…...
docker的安装及入门指令
目录 一、将docker安装到云服务器步骤 1.更新系统yum版本 2.安装所需依赖 3.添加docker仓库设置(使用的是阿里云) 4.安装docker引擎 5.启动docker并开启自动启动 6. 检查是否安装成功,成功会显示相应版本,否则安装失败 二、docker常用命令 1.从…...
聚能共创下一代智能终端操作系统 软通动力荣膺“OpenHarmony优秀贡献单位”
近日,由开放原子开源基金会指导,以“开源共享未来”为主题的OpenHarmony社区年会在北京成功举办。本次活动汇集OpenHarmony项目群共建单位及生态伙伴等多方力量,旨在对2023年度OpenHarmony年度开源事业全面总结的同时,吸引更多伙伴…...
云服务器ECS租用价格表报价——阿里云
阿里云服务器租用价格表2024年最新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元,ECS u1服务器2核4G5M固定带宽199元一年,2核4G4M带宽轻量服务器一年165元12个月,2核…...
光猫桥接模式详细步骤
目录 一、前言 路由模式 (宽带默认) 桥接模式 二、桥接模式步骤 (一)图片记录备份 设备信息图 网络侧信息 远程管理密码 宽带上网设置 (二)桥接模式开始 光猫设置 路由器设置 一、前言 重点&a…...
构建开源可观测平台
企业始终面临着确保 IT 基础设施和应用程序全年可用的压力。现代架构(容器、混合云、SOA、微服务等)的复杂性不断增长,产生大量难以管理的日志。我们需要智能应用程序性能管理 (APM) 和可观察性工具来实现卓越生产并满足可用性和正常运行时间…...
SketchUp Pro 2024 for mac 草图大师 专业的3D建模软件
SketchUp Pro 2024 for Mac是一款功能强大的三维建模软件,适用于Mac电脑。其简洁易用的界面和强大的工具集使得用户可以轻松创建复杂的3D模型。 软件下载:SketchUp Pro 2024 for mac v24.0.483 激活版下载 SketchUp Pro 2024 for Mac支持导入和导出多种文…...
通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(三)
本篇内容对应 “2.4 生成验证码” 小节 和 “4.7 优化登陆模块”小节 视频链接 1 Kaptcha介绍 Kaotcga是一个生成验证码的工具。 你的网站验证码是什么? 在我们这个牛客论坛项目,验证码分为两部分 给用户看的是图片,用户根据图片上显示的…...
别盲目学AI!先搞懂人工智能的3大核心分支,选对方向少走3年弯路
文章目录前言第一大分支:大模型与生成式AI——AI行业的"水电煤"什么是大模型与生成式AI?大模型技术在2026年的发展现状大模型方向的主要岗位和薪资大模型方向的学习路线第二大分支:智能体与多智能体系统——2026年AI行业最大的风口…...
PowerToys Awake:3种模式彻底解决Windows电脑意外休眠的烦恼
PowerToys Awake:3种模式彻底解决Windows电脑意外休眠的烦恼 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/Pow…...
突破传统命令行限制:PortProxyGUI如何重塑Windows网络配置体验
突破传统命令行限制:PortProxyGUI如何重塑Windows网络配置体验 【免费下载链接】PortProxyGUI A manager of netsh interface portproxy which is to evaluate TCP/IP port redirect on windows. 项目地址: https://gitcode.com/gh_mirrors/po/PortProxyGUI …...
从‘一片蓝’到‘五彩斑斓’:手把手教你美化Matlab三维柱状图,让论文图表脱颖而出
从‘一片蓝’到‘五彩斑斓’:科研级Matlab三维柱状图视觉优化全攻略 当审稿人翻开一篇论文时,图表往往是他们最先注意到的元素。我曾参与过多次学术期刊的评审工作,那些配色考究、细节精致的图表总能在第一时间抓住眼球——这不仅仅是审美问题…...
百度网盘群晖套件终极指南:3步实现NAS云存储完美整合
百度网盘群晖套件终极指南:3步实现NAS云存储完美整合 【免费下载链接】synology-baiduNetdisk-package 项目地址: https://gitcode.com/gh_mirrors/sy/synology-baiduNetdisk-package 想在群晖NAS上直接管理百度网盘文件?这个开源套件让你轻松实…...
CodeGPT:基于AI的Git提交信息自动生成工具实战指南
1. 项目概述:CodeGPT,一个用Go写的AI驱动Git工具 如果你和我一样,每天都要在终端里敲无数次 git commit -m "..." ,并且为写一个清晰、规范的提交信息而绞尽脑汁,那今天分享的这个工具绝对能让你眼前一亮…...
Ansible file模块实战:从创建目录到管理软硬链接,一篇搞定Linux文件系统日常运维
Ansible file模块实战:从创建目录到管理软硬链接,一篇搞定Linux文件系统日常运维 在当今云计算和自动化运维的时代,手动登录服务器执行文件操作已经成为效率的瓶颈。想象一下,当你需要在数百台服务器上统一创建应用目录结构、批量…...
VirtualRouter:3分钟将Windows电脑变身为免费WiFi热点
VirtualRouter:3分钟将Windows电脑变身为免费WiFi热点 【免费下载链接】VirtualRouter Wifi Hotspot for Windows computers (Windows 7, 8.x, Server 2012 and newer!) 项目地址: https://gitcode.com/gh_mirrors/vi/VirtualRouter 你是否曾遇到这样的情况&…...
利用Taotoken的多模型能力为AIGC应用构建弹性后备方案
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken的多模型能力为AIGC应用构建弹性后备方案 对于开发图像生成、文案创作等AIGC应用的团队而言,服务连续性至…...
从DP-V0到DP-V2:一文讲透Profibus-DP三大版本的核心差异与工业现场选型建议
从DP-V0到DP-V2:Profibus-DP三大版本的核心差异与工业现场选型指南 在工业自动化领域,实时通信协议的选型往往直接决定生产线的响应速度、诊断能力和系统扩展性。作为制造业自动化系统中应用最广泛的现场总线之一,Profibus-DP历经三次重大版本…...
