gin入门教程(4):路由与处理器

路由与处理器

在 Gin 框架中,路由和处理器是核心组成部分,负责将 HTTP 请求映射到相应的处理逻辑。

1. 定义路由

cmd/main.go 中,您可以定义不同的路由,例如:

r.GET("/ping", func(c *gin.Context) {c.JSON(200, gin.H{"message": "pong",})
})r.POST("/users", createUser)
2. 创建处理器函数

定义处理器函数以处理特定的请求:

func createUser(c *gin.Context) {var user Userif err := c.ShouldBindJSON(&user); err == nil {// 假设这里有逻辑处理用户创建c.JSON(201, user)} else {c.JSON(400, gin.H{"error": err.Error()})}
}
3. 使用路由组

可以使用路由组来组织相关路由:

v1 := r.Group("/v1")
{v1.GET("/users", getUsers)v1.POST("/users", createUser)
}

完整代码:

package mainimport ("github.com/gin-gonic/gin"
)// User 定义用户结构体
type User struct {Name  string `json:"name"`Email string `json:"email"`
}// createUser 处理用户创建
func createUser(c *gin.Context) {var user Userif err := c.ShouldBindJSON(&user); err == nil {// 假设这里有逻辑处理用户创建c.JSON(201, user)} else {c.JSON(400, gin.H{"error": err.Error()})}
}func main() {// 创建默认路由器r := gin.Default()// 设置根路由r.GET("/", func(c *gin.Context) {c.JSON(200, gin.H{"message": "Hello, Gin!",})})r.GET("/ping",func (c *gin.Context)  {c.JSON(200,gin.H{"message":"pong",})})r.POST("/users",createUser)// 启动服务器r.Run(":8080") // 默认在 8080 端口
}
4. 启动服务器

确保调用 r.Run(":8080") 启动服务器。

5. 测试路由

使用 Postman 或 cURL 测试您的路由和处理器,确保返回正确的响应。

这样,您就能灵活地定义路由和处理请求逻辑,构建功能丰富的 API!

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

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

相关文章

.NET 8 Web API从基础到提高全面示例

.NET 8 Web API从基础到提高全面示例 概述:1. 设置 .NET 8 Web API 项目概念使用 .NET CLI 创建新的 Web API 项目。这设置了一个基本的项目结构,包括启动和 WeatherForecast 控制器作为示例。Program.cs代码示例dotnet new webapi -n MyWebApi2. Prog…

查看Chrome安装路

谷歌Google浏览器查看安装路径,浏览器Google Chrome浏览器查看安装路径 chrome://version/ 来源:笔记云

如何训练SDXL,finetune,Docker,实战教程

启动容器: docker run -it --rm --gpus all --net host --shm-size=16g -v /root/xiedong:/root/xiedong kevinchina/deeplearning:pytorch2.3.0-cuda12.1-cudnn8-devel-xformers-lora-train bash启动webui: cd /workspace/lora-scriptspython gui.py --host "0.0.0.0…

自动化桌面通知:使用Plyer库实现工作提醒

1. 引言 在日常工作中,我们经常需要设置各种提醒来帮助自己记住重要的事情。利用Python编程语言和plyer库,我们可以非常方便地创建一个自动化桌面通知系统,它可以在特定时间或周期性地向用户展示通知消息。 2. 安装Plyer库 在开始编码之前…

idea安装visualVm插件

idea 安装visualVM插件用于分析java程序, 1.在插件市场安装visualvm launcher 2.安装成功后,重启idea,此时启动按钮旁边有这两个按钮 3.需要在这里配置插件的visualvm位置 4.配置完后,点击启动

10.25学习

1.程序链接库 程序链接库(Library),通常简称为库,是程序设计中一种常用的代码组织方式。它包含了一组预先编写好的代码,这些代码可以被多个不同的程序调用,以实现特定的功能。使用链接库的主要目的包括&am…

已解决 django.db.utils.OperationalError: (1051, “Unknown table

报错信息: django.db.utils.OperationalError: (1051, "Unknown table bjybolg.tool_submission")python manage.py migrate --fake 命令用于告诉 Django 假装已经应用某个迁移,而不实际执行该迁移的操作。这通常在以下情况下非常有用&#x…

Layout 布局组件快速搭建

文章目录 设置主题样式变量封装公共布局组件封装 Logo 组件封装 Menu 菜单组件封装 Breadcrumb 面包屑组件封装 TabBar 标签栏组件封装 Main 内容区组件封装 Footer 底部组件封装 Theme 主题组件 经典布局水平布局响应式布局搭建 Layout 布局组件添加 Layout 路由配置启动项目 …

Linux: Shell编程入门

Shell 编程入门 1 ) Shell 概念 shell 是 在英语中 壳, 外壳的意思可以把它想象成嵌入在linux这样的操作系统里面的一个微型的编程语言不像C语言, C 或 Java 等编程语言那么完整,它可以帮我们完成很多自动化任务例如保存数据监测系统的负载等等,我们同样…

windows手动配置IP地址与DNS服务器以及netsh端口转发

在Windows系统中,配置主机的IP地址、子网掩码和网关地址可以通过以下步骤手动设置。这在某些情况下是必要的,例如当你需要确保网络接口使用特定的IP地址或网关时。 手动设置IP地址、子网掩码和网关地址的步骤 打开“网络和Internet设置”: 右…

【ArcGIS Pro实操第8期】绘制WRF三层嵌套区域

【ArcGIS Pro实操第8期】绘制WRF三层嵌套区域 数据准备ArcGIS Pro绘制WRF三层嵌套区域Map-绘制三层嵌套区域更改ArcMap地图的默认显示方向指定数据框范围 Map绘制研究区Layout-布局出图 参考 本博客基于ArcGIS Pro绘制WRF三层嵌套区域,具体实现图形参考下图&#xf…

从零开始学五笔(七):折区字根

讲解格式: 先介绍按键的区位号、口诀内容、口诀说明然后列每个字根能组成什么汉字,难拆字将用中括号标出 ‍ N 键 区位号:51 口诀:已半巳满不出己,左框折尸心和羽 说明: 已半巳满不出己:指…

掘金.数字魔法的加一操作(中等03)

import java.math.BigInteger;public class Main {public static int solution(int n, int k, String numStr) {//1.使用可变字符串StringBufferStringBuffer sb new StringBuffer(numStr);//2.循环k次for (int i 0; i < k; i) {//2.1 创建临时可变字符串 StringBuffer ne…

Python经典案例之简易计算器

先来看一段代码 # 定义函数 def add(x, y):"""相加"""return x ydef subtract(x, y):"""相减"""return x - ydef multiply(x, y):"""相乘"""return x * ydef divide(x, y):"…

CentOS 8修改Linux配置文件指定属性的值

1.前提&#xff1a; 存在test空文件&#xff08;test位于/etc/sysconfig/network-scripts目录&#xff09; 2.test文件插入内容&#xff1a; 1&#xff09;添加内容&#xff1a;IPADDR192.168.132.129 echo IPADDR192.168.132.129 | sudo tee -a /etc/sysconfig/network-sc…

Linux中级(DNS域名解析服务器)

一。产生原因1.IP地址&#xff1a;是互联网上计算机唯一的逻辑地址&#xff0c;通过IP地址实现不同计算机之间的相互通信&#xff0c;每台联网计算机都需要通过IP地址来互相联系和分别&#xff0c;但由于IP地址是由一串容易混淆的数字串构成&#xff0c;人们很难记忆所有计算机…

大数据治理平台建设规划方案(71页WORD)

随着信息化时代的到来&#xff0c;大数据已成为企业管理和决策的重要基础。然而&#xff0c;大数据的快速增长和复杂性给数据的管理和治理带来了巨大挑战。为了有效应对这些挑战&#xff0c;构建一个高效、稳定的大数据治理平台显得尤为重要。 文档介绍&#xff1a; 该平台旨在…

Boost电路双闭环控制MATLAB仿真

一、Boost电路电流内环控制MATLAB仿真模型 1.MATLAB仿真模型 1.1.仿真模型图 因为要使用电流内环控制&#xff0c;相比较于开环控制中直接给定MOS开关的占空比&#xff0c;这里通过把电路的平均电流和一电流基准值相比较来控制MOS开关的占空比&#xff0c;因此称为闭环控制。…

MAC电脑的JDK、MAVEN配置及IDEA激活

1、JDK配置环境 vim ~/.bash_profile # 添加 Java 目录&#xff0c;类路径和指令路径的配置&#xff0c;若已存在则用目标值覆盖 export JAVA_HOME/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/…

【后端秘籍】【JVM】第二篇

过去一年&#xff0c;工作忙碌&#xff0c;博客成了被遗忘的角落。时间飞逝&#xff0c;我决定重拾这段旅程&#xff0c;重新在这里记录我的思考与成长。 还是那句话&#xff0c;学起来&#xff1a;基础不牢&#xff0c;地动山摇。 写博客不仅是分享&#xff0c;更是与大家的连…