Gin(一):Hello

【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 生成的项目目录简单多了。

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

个人公众微信号

文章与个人公众号同步更新,欢迎各位扫码关注。

在这里插入图片描述

SAP 零售 FMS 物料主数据(一) SAP 零售 FMS 物料主数据(一) SAP 对于鞋服行业最新的解决方案-FMS(相当于原来的AFS+Retail);更偏向与零售; 商品主数据与原来的AFS大不相同,取消了原来的Grid的网格概念,取而代之的是变式;商品主数据维护也偏向于Retail的维护模式;事物代码也不是MM01而是MM41 /MM46; 在维护商品主数据前,需要与商品部沟通定义各种商品相关的规范如编码规则,大中小类 ,颜色库,尺码库等,此处不赘述; 创建商品需要确定哪些物料是变式物料,哪些是常规不带特性的单一物料;这决定了在创建商 阅读详情

相关推荐

win10自动修复-无限循环【通用完美】超简单解决办法

2020.02.14今个我的笔记本电脑(Thinkpad Carbon 7 X1)(win10)早晨起来发现蓝屏,上面显示自动修复失败,重启后依然自动修复失败,不断手动重启,始终是修复失败。然后上网开始搜集资料找解决办法。 前边介绍关闭自动修复,如何找出错文件的方法;如果想看最终解决办法,直接看第三部分 上网就会发现这种现象很常见,同时是电脑自动安装系统更新,或者安装某些驱动出现。解决办法也大...

y15941300574的博客 19万+

go语言gin框架教程

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

Cursor概述及环境配置

Cursor 是一款基于 AI 的代码编辑器,支持 VS Code 配置迁移和 Java 开发环境配置。主要功能分为 Cursor Settings(AI 相关设置)和 Editor Settings(基础编辑器设置)。用户可通过一键导入或手动方式迁移 VS Code 配置,配置包括主题、扩展和快捷键等。对于 Java 开发,需配置 JDK 和 Maven 路径,并安装 Java 扩展插件以获得完整开发体验,如代码补全、调试和 Maven 项目管理。此外,Cursor 支持汉化配置,用户可安装中文语言包切换

Knight 3557

gin全解

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

General_zy的博客 3269

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

头歌操作系统 课后作业4.3:段页式内存管理 答案 无解析

kercii的博客 7385

NVIDIA显卡驱动历史版本全攻略:从官网隐藏入口到精准下载

本文详细介绍了如何获取NVIDIA显卡驱动历史版本的完整攻略,包括官网隐藏入口的揭秘、精准筛选驱动版本的技巧以及安装避坑指南。特别针对游戏玩家、创作者和老显卡用户提供了实用建议,帮助用户解决驱动兼容性问题,提升显卡性能。

m2n3o4p5的博客 3739

【Gin框架】框架入门

【Gin框架】框架入门

wgchen 5481

GD32_ADC采样+DMA多通道扫描传输

所使用的MCU 片上集成了 12 位逐次逼近式模数转换器模块(ADC),可以采样来自于 16 个外部通道和 2 个内部通道上的模拟信号。这 18 个 ADC 采样通道都支持多种运行模式,采样转换后,转换结果可以按照最低有效位对齐或最高有效位对齐的方式保存在相应的数据寄存器中。我们主要介绍其多通道扫描转换和DMA传输功能,在多个通道轮询采集ad数据,并使用DMA分别保存各个数据值,其能大大提高ADC的工作效率。以下为ADC 模块框图:

Yin_w的博客 8162

【Go语言】Gin 框架教程

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

Python、Golang、大数据 5321

WS2812B非标准通信协议:手把手实现精准时序控制

详解WS2812B的精准时序实现原理,剖析其非标准通信协议的关键细节。通过实际操作指导,帮助开发者稳定驱动ws2812b灯带,解决常见时序偏差问题,提升项目显示效果与响应一致性。

weixin_42584586的博客 587

基础入门篇 | YOLOv8 项目【训练】【验证】【推理】最简单教程 | YOLOv8必看 | 最新更新,直接打印 FPS,mAP50,75,95

三个文件搞定YOLOv8【训练】【验证】【推理】🚀🚀🚀

Coding... 2万+

Gin 框架介绍与快速入门

TOC]Gin是一个轻量级的Go语言Web框架,它具有高性能和简洁的设计。由于其快速的路由匹配和处理性能,Gin成为Go语言中最受欢迎的Web框架之一。

淘小欣的博客 6606

【回答问题】ChatGPT上线了!如何安装python-ipopt?python-ipopt有哪些用法?

python-ipopt是一种基于Python语言的求解非线性最优化问题的软件包。它使用了Interior Point Optimizer(IPOPT)算法来求解最优化问题。这段代码使用python-ipopt求解了一个无约束的非线性最小化问题,其目标函数为(x[0] - 1) ** 2 + (x[1] - 2) ** 2,求解结果为x_opt。求解线性规划问题、二次规划问题、二次范数最小化问题等类型的最优化问题。对于给定的最优化问题,可以设置不同的求解参数来控制求解的精度和效率。

源代码杀手的博客 2146

Gin(一):Hello Gin

代码猎奇站 529

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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(十二):整合 JWT
下一篇: Gin(二):路由Router
代码猎奇站
博客等级 码龄7年 39粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值