Gin框架教程01:创建一个简单的 Gin 应用

news2024/12/25 8:50:43

Gin是目前最流行,性能最好的的GOWEB框架,是学习GOLANG必备的知识。本人最近也在学Gin,在b站搜了很多教程,发现有的教程不够详细,有的教程工具包安装有问题,而官方文档又太简短,于是我就想,能不能通过问ChatGPT来弥补这点?毕竟我们是学技术的,与时俱进才是常态,学习方法也是一样。所以,一套基于官方文档和ChatGPT的Gin教程就诞生了!废话不多说,让我们开启Gin学习之旅吧!
官方项目地址:Gin框架
官方文档地址:Gin官方中文文档
本教程推荐使用方法:创建一个文件夹,用于存放本教程所有示例,本教程每节的内容都放在子文件夹下。
首先,创建一个文件夹,然后创建mod。然后打开命令行,执行如下指令:

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

创建01example文件夹,创建main.go,写入如下代码:

package main

import "github.com/gin-gonic/gin" // 导入 Gin 包

func main() {
	// 创建一个默认的 Gin 引擎
	r := gin.Default()

	// 定义一个 GET 路由,当访问 "/ping" 时触发
	r.GET("/ping", func(c *gin.Context) {
		// 返回 JSON 响应,状态码为 200
		c.JSON(200, gin.H{
			"message": "pong", // 响应内容
		})
	})

	// 启动服务,默认监听 8080 端口
	r.Run()

}

解析:
gin.Default()创建一个默认的 Gin 引擎实例。默认引擎包括了一些基础中间件,例如:
Logger:记录请求日志。
Recovery:处理运行时错误,避免服务崩溃。
func(c *gin.Context)是处理函数,它接受一个 Context 参数,Context 是 Gin 中用于处理请求的上下文对象,包含了请求和响应的相关信息。
c.JSON(...)返回一个 JSON 响应,其中 200 是 HTTP 状态码,gin.H 是一个便捷的字典类型,用于构造 JSON 响应。
r.run()用于监听端口,默认8080,指定端口可以字符串形式传入,比如r.run(":8000")

保存,运行代码,然后打开浏览器,输入 http://localhost:8080/ping,效果如下:
在这里插入图片描述

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

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

相关文章

Java项目:152 基于springboot的仓库管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 系统概要 ​ 本文将介绍一款基于Java开发的仓库管理系统,该系统可以帮助企业实现对仓库物品的高效管理,提高仓库运营效率。文章将详细介…

EMQX服务器的搭建,实现本地机和虚拟机之间的MQTT通信(详细教程)

前言 MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。 MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(…

【MySQL】数据库基础指令(一)

前言 个人感觉 MySQL 没有太多的逻辑问题,只有对语句的熟练使用,会对数据进行增删查改操作即可。本章节的内容将会收集一些常用的 MySQL 的指令的使用。 目录 前言 解决MySQL无法输入中文字符的问题 数据库操作 显示当前的数据库 创建数据库 删除数据库 …

大数据存储,搜索智能化的实践分享 | OceanBase 城市交流会精彩回顾

9月21日,“OceanBase 城市交流会”来到了深圳,携手货拉拉大数据技术与产品部,联合举办了“走进货拉拉”的技术交流活动。货拉拉、万家数科、云集、百丽等多家企业的一线技术专家,就大数据存储、AI等热点话题,深入探讨并…

《学习方法报》是什么级别的报纸?

《学习方法报》是什么级别的报纸? 《学习方法报》是省级报纸。 它由山西省教育厅主管,山西教育教辅传媒集团主办。该报创办于 1993 年,国内统一刊号为 CN14-0706/(F)。其作为中国高教学会学习科学研究分会会报,以传递最新教改信…

C# 基于winform 使用NI-VISA USB口远程控制电源 万用表

1.下载完整版本NI-VISA NI-VISA Download - NI *注意支持的操作系统,以便后期编译 安装完成之后,打开NI MAX,插上usb口,打开测试面板进行通信 2.编程示例 见本地文件夹C:\Users\Public\Documents\National Instruments\NI-VIS…

笔记-Python爬虫技术基础及爬取百度新闻

笔记-Python爬虫技术基础及爬取百度新闻 1.1查看网页源代码1.2网页结构初步了解1.3HTML基础知识1.标题<h>标签&#xff1a;2.段落<p>标签&#xff1a;3.链接<a>标签&#xff1a;(定义链接)4.区块&#xff1a;5.类&#xff08;class&#xff09;与 ID 1.4百度…

在深圳宝安石岩路过一座关帝宫

​不管是在我老家还是这几年深漂&#xff0c;关帝爷的庙宇我还真没见过的。今天带娃骑行宝安石岩罗租村逛&#xff0c;居然看到一座古色古香的房子&#xff0c;走进一看原来这是关帝宫啊&#xff01;敬仰之情油然而生。 ​关帝宫和附近的小产权房紧凑在一起&#xff0c;但是现在…

探索人工智能在大规模采用电动汽车的时代将解决电力供需难的问题

1.导言 论文地址&#xff1a;https://arxiv.org/abs/2404.12520 随着电动汽车&#xff08;EV&#xff09;的普及&#xff0c;高峰期的用电需求可能会大幅增加。因此&#xff0c;如何适当控制电动汽车充电并尽量减少高峰期的用电量是一项重要挑战。传统上&#xff0c;基于模型和…

编程练习3 密码输入检测

#include<iostream> #include<vector> #include<string>using namespace std;// 判断字符是否为小写字母 bool isLower(char ch) {return ch > a && ch < z; }// 判断字符是否为大写字母 bool isUpper(char ch) {return ch > A && …

2024.10.8号培训计算机及外部设备装配调试员

1.理论 &#xff08;1&#xff09;电脑的种类&#xff1a;台式机&#xff1a;台式电脑&#xff0c;是一种各功能部件相对独立计算机&#xff0c;又分品牌机和兼容机。 &#xff08;2&#xff09;笔记本电脑&#xff1a;手提电脑或者膝上型电脑&#xff0c;是一种体积小&#…

【C++】内存管理,RALL原则和智能指针

1 C资源管理 C资源管理是确保程序运行效率和稳定性的关键。资源管理涉及变量、参数的存储和生命周期控制&#xff0c;以及动态内存的分配和释放。C通过一套内存管理机制来实现资源的有效分配和管理。 1.1 内存管理 为适用不同场景&#xff0c;C提供了多种内存管理方式&#…

基于Springboot+Vue的校园消费点评系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

大顶堆优化dp,带限制的子序列

前言&#xff1a;看到这个题目的时候我们可以用大顶堆记录前面的最大值&#xff0c;这样我们转移的时候就少了很多繁琐的查询 题目地址 class Solution { public:int constrainedSubsetSum(vector<int>& nums, int k) {int n nums.size();vector<int> ans nu…

论文Idea | 人工智能与建筑的交叉领域探索

在人工智能&#xff08;AI&#xff09;与建筑领域的交叉研究中&#xff0c;学者们探索了如何利用AI技术优化建筑设计、施工、管理以及运营等各个环节。以下是关于这一交叉领域的一些关键内容、研究方向、代表性论文及资源。 1.人工智能在建筑领域的应用概述 人工智能技术的快速…

Dev-Cpp 5.11 安装教程【保姆级】

目录 1. 准备软件安装包 2. 软件安装 3. 软件使用过程中必备的预先设置 写在前面 1. 如果你的电脑是Win 7&#xff0c;建议安装Dev-Cpp 5.11&#xff0c;解决软件和系统的兼容问题。具体安装步骤按照本教程进行即可。 2. 如果你的电脑是Win 10&#xff0c;建议安装Embarca…

QML6 项目生成缓存文件取消办法

有时候我们创建QML项目会在 C:\Users\85720\AppData\Local 文件夹下生成临时缓存文件&#xff0c;不注意的话&#xff0c;文件会越来越多&#xff0c;很烦人。 可以试试通过下面方法取消生成qml缓存文件&#xff0c;配置-》构建和运行 这里选 Use qmlcachegen: 禁用

java web 之过滤器Filter

1、概念 当访问服务器的资源时&#xff0c;Filter过滤器可以将请求拦截下来&#xff0c;完成一些特殊的功能。 通常都是用来拦截request进行处理的&#xff0c;也可以对返回的response进行拦截处理。 一般用于完成通用的操作。如&#xff1a;登录验证、统一编码处理、敏感字…

丰田,也杀入料箱AGV市场

导语 大家好&#xff0c;我是社长&#xff0c;老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 在全球仓储自动化领域的竞争日益激烈之际&#xff0c;一场引人注目的合作正在悄然展开。 丰田旗下的物料搬运巨头范德兰德(Vanderlande)…