Gin(一):Hello Gin

【Gin⭐001】Gin初识,hello world Gin,一个小而轻,go语言实现的web框架,相当于python里的flask框架。他们的共同点都是小而轻,大而全的框架是beego,相当于python的django框架。 官方地址:https://github.com/gin-gonic/gin gin-hello world package main import( "net/http" "github.com/gin-gonic/gin" ) func Pong(c *gin.Context){ c.JSON(http 阅读详情
?什么是 Gin

Gin 是一个用 Golang 写的 http web 框架。

这是来自 Gin Github 上的描述。

?开发环境

  • GoLand 2019.2 EAP

  • GoLang 1.11.5

  • 采用 Go Modules 进行管理

?快速入门

用 GoLand 新建项目的时候,我们选择 Go Modules(vgo) ,填写我们的项目地址和项目名称,我们命名为 GinHello 。

点击 Create ,此时 Goland 为我们生成了项目目录,Go 项目的目录永远是那么的简单,比 Java 的 Maven 或者 Gradle 生成的项目目录简单多了。

640?wx_fmt=jpeg

 GinHello	
 |	
 |-go.mod

对,就是一个文件 ,一个 Go module 文件。go mod 是 Go 官方引入的一个依赖管理工具。

添加依赖

通过 go mod 文件进行依赖的。

require github.com/gin-gonic/gin v1.4.0


我们把上面的依赖进行添加到 go module  中, goLand 会自动帮我们进行依赖的下载和管理。

Hello Gin

当完成依赖的添加,就可以开始写代码了。

新建一个 main.go 文件。

 package main	
 	
 import (	
 "github.com/gin-gonic/gin"	
 )	
 	
 func main() {	
 router := gin.Default()	
 router.Run()	
 }

Gin 只需要两行代码就可以把我们的服务跑起来。

我们只要点击运行,项目便会启动一个 8080 端口,打开浏览器 localhost:8080 我们便可以看到页面上提示出 404 page not found ,这是因为我们的根路由上并没有返回任何结果。同时我们可以在控制台上看到一些打印信息,其中就包括我们刚刚访问根路由的端口。

产生接口

项目已经启动了,那么如何返回一个接口呢?

通过 router 的 Handle 进行配置我们返回的参数。

 // 省略代码	
 // 添加 Get 请求路由	
 router.GET("/", func(context *gin.Context) {	
 context.String(http.StatusOK, "hello gin")	
 })	
 // 省略代码
此时我们重启项目,重新访问页面 localhost:808,此刻的页面上已经显示了 hello gin。

同样,我们还可以进行 POST,PUT,DELETE等请求方式。

单元测试

单元测试是项目不能缺少的模块,也是保障项目可以正常运行的重要依赖。下面就对 Gin 进行单元测试。

为了方便单元测试,我们首先要对我们的项目进行一下抽取。

新建立一个文件夹叫做 initRouter

建立 go 文件 initRouter.go

 package initRouter	
 	
 import (	
 "github.com/gin-gonic/gin"	
 "net/http"	
 )	
 	
 func SetupRouter() *gin.Engine {	
 router := gin.Default()	
 // 添加 Get 请求路由	
 router.GET("/", func(context *gin.Context) {	
 context.String(http.StatusOK, "hello gin")	
 })	
 return router	
 }

同时修改 main.go

 package main	
 	
 import (	
 "GinHello/initRouter"	
 )	
 	
 func main() {	
 router := initRouter.SetupRouter()	
 _ = router.Run()	
 }

完成了项目测试的初步建立。

建立 test 目录, golang 的单元测试都是以 _test 结尾,建立 index_test.go 文件。

 package test	
 	
 import (	
 "GinHello/initRouter"	
 "github.com/stretchr/testify/assert"	
 "net/http"	
 "net/http/httptest"	
 "testing"	
 )	
 	
 func TestIndexGetRouter(t *testing.T) {	
 router := initRouter.SetupRouter()	
 w := httptest.NewRecorder()	
 req, _ := http.NewRequest(http.MethodGet, "/", nil)	
 router.ServeHTTP(w, req)	
 assert.Equal(t, http.StatusOK, w.Code)	
 assert.Equal(t, "hello gin", w.Body.String())	
 }
通过 assert 进行断言,来判断返回状态码和返回值是否与代码中的值一致。

此时的项目目录为:

 GinHello
 |
 |-initRouter
 | |-initRouter.go
 |
 |-test
 | |-index_test.go
 |
 |-main.go
 |-go.mod
 |-go.sum

运行单元测试,控制台打印出单元测试结果。

--- PASS: TestIndexGetRouter (0.02s)  PASS

?总结

通过简单的搭建一个 Gin 项目,可以看到 Go 语言搭建一个 Http 服务器很简单,也很方便,零配置即可完成项目并运行起来。

?本章节代码

Github youngxhui/GinHello


C++游戏开发入门:从环境配置到第一个完整项目 C++ 作为游戏开发领域的关键语言,其学习路径常因语法枯燥而令初学者却步。以项目驱动的方式学编程,能帮助学习者将变量、循环、函数、指针等基础概念融入实际游戏逻辑中,获得即时反馈与完整项目经验。掌握合适的开发环境是高效实践的前提,例如在 Windows 下使用 VS Code 搭配 MinGW-w64 编译器,配合调试器与构建脚本,即可搭建轻量可扩展的 C++ 游戏开发工作流。此类课程通常面向无基础人群,从控制台小游戏逐步过渡到带游戏循环的完整作品,过程中还需关注性能观察、素材授权与版本管理。无论你是刚接触编 阅读详情

相关推荐

Android息屏后台任务保活实战:从定时器失效到厂商白名单破解

本文深入探讨了Android应用在息屏后定时任务失效的根源,即系统为省电而触发的休眠机制。文章提供了从传统方案失效分析到实战破解的完整路径,核心在于引导用户将应用加入电池优化白名单并开启自启动权限,从而合法绕过限制。同时,结合WorkManager、AlarmManager等可靠定时方案,实现稳定的后台任务执行。

weixin_28475533的博客 423

go语言gin框架教程

Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。如果你需要极好的性能,使用 Gin 吧。

强化学习 | Multi Agents | Trust Region | HATRPO | HAPPO

ICLR2022多智能体论文,将trust region推广到MA上,保证单调递增。学习博客,共7k字,纯手敲。含大量手写笔记。

111辄的博客 1万+

gin全解

Gin 是一个用 Go (Golang) 编写的 Web 框架。它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。如果您需要性能和良好的生产力,您一定会喜欢 Gin。Gin中的中间件必须是一个类型。// StatCost 是一个统计耗时请求耗时的中间件// 可以通过c.Set在请求上下文中设置值,后续的处理函数能够取到该值// 调用该请求的剩余处理程序c.Next()// 不调用该请求的剩余处理程序// 计算耗时import (

General_zy的博客 3269

中文文本纠错实战:pycorrector与kenlm的安装与高效使用指南

本文提供了一份详细的中文文本纠错实战指南,重点介绍了pycorrector与kenlm的安装与高效使用方法。内容涵盖从编译环境准备、依赖安装到核心参数调优、批量处理及领域自适应等全流程,旨在帮助开发者快速部署并优化纠错系统,提升中文文本处理的质量与效率。

weixin_29055699的博客 411

下载Python3.10的相关方法及问题解决

下载Python3.10的相关方法及问题解决 报错unable to locate package python3.10-dev以及subprocess.CalledProcessError: Command ‘(‘lsb_release‘, ‘-a‘)‘ returned non-zero exit status 1问题解决

Istil 1555

【Gin框架】框架入门

【Gin框架】框架入门

wgchen 5481

某手短视频用户主页视频列表爬虫实战:从原理到完整实现

随着短视频平台的迅猛发展,某手(为保护平台隐私,本文以“某手”代指实际目标)已经成为国内最大的短视频社交平台之一,拥有数亿日活用户。对于数据分析师、内容创作者和市场营销人员而言,获取某个用户主页的视频列表具有重要的研究价值——无论是分析头部创作者的内容策略,还是监测竞品的发布频率与互动数据,爬虫技术都成为不可或缺的工具。然而,在2024-2025年的技术环境下,某手已经构建了多层次的反爬机制:包括接口签名加密、请求参数动态混淆、设备指纹检测、IP行为分析以及Web端无限滚动加载的异步数据获取方式。

2201_76125261的博客 541

【Go语言】Gin 框架教程

开头,通过分组路由就能够简化路由的定义,也可以更好的实现路由的权限控制,例如将需要登录的路由放到同一分组中。这里使用一个表单参数进行举例,如下所示,输入分数转化为及格、不及格的判断,代码如下所示。请求其他的路由,则不受影响,就如我们在中间件方法所写的判断一样,仅仅只是拦截了。分组路由主要是为了处理路由前缀一致的情况,例如有一组路由前缀都是。程序,重启之后,再次访问路由地址,就能够正常解析路由参数了。与上文的路由参数一样,参数都是路由的一部分,不同的是。请求不同的路由地址,均能够得到正常的响应。

Python、Golang、大数据 5321

034、MLCA 多尺度局部上下文注意力的 YOLOv11 适配:轻量级金字塔式空间上下文聚合

本文介绍了一种将多尺度局部上下文注意力(MLCA)模块集成到YOLOv11模型中的方法,以解决小目标检测中空间信息丢失的问题。MLCA采用金字塔式局部上下文聚合策略,通过不重叠的网格划分实现轻量级空间注意力计算,相比全局注意力机制能更好地保留小目标特征。 作者详细记录了实现过程,包括模块定义、参数调优和训练技巧,特别指出避免使用BN而改用GroupNorm以提升训练稳定性。在VisDrone数据集上的实验表明,MLCA-YOLOv11在参数量和计算量基本不变的情况下,mAP提升2.5%,其中行人检测提升3.

sundong_81的博客 280

车辆网络安全ISO/SAE 21434解读(一)概述

ISO/SAE 21434 《道路车辆 网络安全工程》是SAE和ISO共同制定的一项针对道路车辆的网络安全标准,它是一个面向汽车行业全供应链(OEM及各级供应商)的车辆网络安全管理指导文件

xiaoxiabang的博客 8427

Gin框架深度解析:构建高性能Go Web应用的基石

Gin是Go语言生态中一款轻量级但功能强大的Web框架。它的设计初衷是提供一个简单、快速且高效的方式来构建Web应用。与其他Go Web框架相比,Gin在保持高性能的同时,还提供了丰富的API和灵活的中间件支持,使得开发者可以轻松地构建出既满足性能要求又具备丰富功能的Web应用。除了内置的中间件之外,Gin还允许开发者自定义中间件。自定义中间件可以根据应用的具体需求来编写,实现诸如权限验证、CORS(跨源资源共享)控制、请求限流等特定功能。

m0_70066267的博客 1777

最小二乘(MLS)求点云法向量

MLS算法的基本思想是通过在点云的局部邻域内拟合一个光滑曲面,如平面或多项式曲面,以此来重建和处理点云数据。对于法向量估计,MLS通常在每个点的邻域内拟合局部平面,然后从该平面的法向量作为点的法向量。

twnkie的博客 744

Gin(一):Hello

代码猎奇站 1190

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

gin 一.创建gin_hello服务与启动

目录创建一个gin_hello服务设置下载代理地址简单模块化有单元测试模块化修改抽取RouterAPI单元测试服务器启动方式 创建一个gin_hello服务 创建服务(使用go Mod) 创建main.go并导入gin包 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { //1.创建一个默认的路由器 router := gin.Default() //2.添加 Get 请求路由,又称为

qq_29799655的博客 1065

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

gin context和官方context_Gin(一):Hello Gin,Gin入门

原文来自Gin(一):Hello | ISLAND​youngxhui.topGi什么是 GinGin 是一个用 Golang 写的 http web 框架。这是来自 Gin Github 上的描述。开发环境GoLand 2019.2 EAPGoLang 1.11.5采用 Go Modules 进行管理快速入门用 GoLand 新建项目的时候,我们选择 Go Modules(vgo) ,选择我们的...

weixin_34245171的博客 830

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

gin 取访问地址_Gin(一):Hello Gin ,学习 Gin 从这里开始

什么是GinGin 是一个用 Golang 写的 http web 框架。这是来自 Gin Github 上的描述。开发环境GoLand 2019.2 EAPGoLang 1.11.5采用 Go Modules 进行管理快速入门用 GoLand 新建项目的时候,我们选择 Go Modules(vgo) ,填写我们的项目地址和项目名称,我们命名为 GinHello 。点击 Create ,此时 Go...

weixin_31184569的博客 863

Gin框架笔记(一) Gin框架的安装与Hello World

Gin是一个golang的微框架,基于 httprouter,封装比较优雅,API友好,源码注释比较明确。具有快速灵活,容错率高,高性能等特点。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。

qq_73924465的博客 593

go的gin框架使用(一):Hello World

框架的好处就不多说,笔者觉得在go中的web框架前三毫无疑问,加上性能好,有望成为第一大go的web开发框架一:下载1:go get gopkg.in/gin-gonic/gin.v1(上面的这个地址需要在墙的情况下才能用哦)2:git clone https://github.com/gin-gonic/gin.git二:编码三:访问...

美丽的泡沫 2670

gin框架源码学习笔记(一)简单解读一个hello程序

gin框架源码学习笔记(一)简单解读一个hello程序 文章目录gin框架源码学习笔记(一)简单解读一个hello程序hello程序Default()EngineGET()run()小结 先把源码拉下来,go get github.com/gin-gonic/gin 之后本章简单解读一个hello程序. hello程序 package main import ( "github.co...

靑い空゛ 920

go语言 gin框架学习笔记(一)之 hello world

gin下载 go getgithub.com/gin-gonic/gin 代码展示 package main import ( "github.com/gin-gonic/gin" "net/http" ) func main() { router :=gin.Default() router.GET("/", func(c *gin.Context) { ...

SeaLong_的博客 580

Gin-Go学习笔记一:Hello World

Hello World 1> Gin是一个golang的微框架,封装比较优雅,API友好。具有快速灵活,容错方便等特点。Gin自身的net/http足够简单,性能也非常不错。 2> 安装Gin环境.在命名行中输入如下的命名: go get github.com/gin-gonic/gin. 3> 创建第一个Gin项目,新建一个GinOne...

weixin_30527143的博客 136

go 创建gin项目 写hello world (一)

第一步 添加环境变量: GO111MODULE on GOPROXY https://goproxy.io GOROOT 是你安装go的路径 第二部 打开goland file -> new -> Project 第三步 拉取gin框架 go get -u github.com/gin-gonic/gin 到这里已经完成 测试一下 写一个main.go package main import "github.com/g...

小麦先生 322

探索高效开发之旅:Hello Gin 开源项目推荐

探索高效开发之旅:Hello Gin 开源项目推荐 在快速迭代的软件开发世界中,选择一个高效、灵活的框架是每个开发者追求的目标。今天,我们将深入探讨一个备受推崇的开源项目——Hello Gin,它基于Go语言的Gin框架,为开发者提供了一系列详尽的示例代码和教程,助力你快速上手并精通Gin框架。 项目介绍 Hello Gin 是一个专注于Gin框架的示例代码集合,旨在通过一系列逐步深入的教程,帮助...

gitblog_00443的博客 935

Go Web 项目使用 Gin 框架:Hello World 示例

Go Web 项目使用 Gin 框架:Hello World 示例

一起coding,一起嗨。 1270

gin go笔记-创建gin项目二

花不知名分外娇 Gin 框架的选择 经过各种网络搜索各个框架性能及优缺点,最终锁定Beego和Gin 两款框架。本人又经过长期思想斗争,耗死千万脑细胞的情况下选择了Gin .原因就是性能好。没有框架应有的目录结构,才是真正的目录结构(这样可以想怎么搞怎么搞!)。当然,作为一个资深的PHP码农,使惯了mvc 模式,还是会遵循MVC模式 一:安装Gin 框架 ​ 执行 go get git...

大飞的博客 3805
上一篇: 中秋节快乐
下一篇: Gin(三):配合模板 Tmpl
代码猎奇站
博客等级 码龄7年 39粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值