【gin框架入门】

1.介绍

Gin 是一个用 Golang编写的 高性能的web 框架, 由于http路由的优化,速度提高了近 40 倍。 Gin的特点就是封装优雅、API友好。

Gin的一些特性:

  • 快速 基于 Radix 树的路由,小内存占用。没有反射。可预测的 API 性能。

  • 支持中间件 传入的 HTTP 请求可以由一系列中间件和最终操作来处理。 例如:Logger,Authorization,GZIP,最终操作DB。

  • Crash 处理 Gin 可以 catch 一个发生在 HTTP 请求中的 panic 并 recover
    它。这样,你的服务器将始终可用。例如,你可以向 Sentry 报告这个 panic!

  • JSON 验证 Gin 可以解析并验证请求的 JSON,例如检查所需值的存在。

  • 路由组 更好地组织路由。是否需要授权,不同的 API 版本…… 此外,这些组可以无限制地嵌套而不会降低性能。

  • 错误管理 Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。

  • 内置渲染 Gin 为 JSON,XML 和 HTML 渲染提供了易于使用的 API。

  • 可扩展性 新建一个中间件非常简单。

2.下载并安装 gin

注:使用gin需要Go的版本号为1.6或更高

在src目录下创建

mkdir  go-project-demo 

进入该目录下

cd go-project-demo 

在该目录下使用go mod 创建项目

 go mod init go-project-demo

然后使用go get 进行下载安装gin

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

如下图:

在这里插入图片描述

3.创建demo

在go-project-demo 目录下创建一个main.go文件,文件内容如下:

package main
// 导入gin包
import "github.com/gin-gonic/gin"// 入口函数
func main() {// 初始化一个http服务对象r := gin.Default()// 设置一个get请求的路由,url为/ping, 处理函数(或者叫控制器函数)是一个闭包函数。r.GET("/ping", func(c *gin.Context) {// 通过请求上下文对象Context, 直接往客户端返回一个jsonc.JSON(200, gin.H{"message": "pong",})})r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}

在终端运行go run main.go

在这里插入图片描述

运行输出如下:
在这里插入图片描述
至此一个简单的gin框架入门demo完成。

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

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

相关文章

聊聊测试团队管理

管理测试团队是一个复杂但至关重要的任务,它不仅关乎于保证软件产品的质量,还涉及到团队建设、流程优化、技能提升等多个方面。以下是一些关键策略,可以帮助您有效地管理测试团队,比如“持续培训和技术支持,明确目标&a…

AIGC 时代软件工程师:前景、需求与大模型提效探究

过去,在互联网浪潮汹涌的十年来,软件工程师的角色愈发凸显其不可或缺的价值。随着AIGC(人工智能生成内容)时代的到来,软件开发的每个环节都正在经历一场前所未有的革新。今天,我们深入研究了大型AI模型如何…

相交链表(给你两个链表,找出它们的第一个公共结点)的实现与讲解

一:题目 二:思路讲解 1:应该是先判断是否相交。 2:相交就计算出相交前的两条链表的长度差距 3:让长的那一条链表先走长度的差距,这样会距离交点的距离相等,然后再对两条链表的节点对应着去比…

KaiwuDB 参编的《分析型数据库技术要求》标准正式发布

近期,中国电子工业标准化技术协会正式发布团体标准《分析型数据库技术要求》(项目号:T-CESA 2023-006)。该标准由中国电子技术标准化研究院、KaiwuDB(上海沄熹科技有限公司) 等国内 16 家企业联合起草&…

C#开发的网络速度计 - 开源研究系列文章 - 个人小作品

上次发布了一个获取网络速度的例子( https://www.cnblogs.com/lzhdim/p/18167854 ),就是为了这次这个例子。用于在托盘里显示网络速度的图标,并且能够显示网络速度。下面就介绍一下这个小应用的源码。 1、 项目目录; 2、 源码介绍&#xff1b…

javac编译web项目中的src

对于单个文件的且不引用其他类文件的java源码用javac编译大家都很熟悉即 javac hello.java, 服务器未安装idea,现在在服务器里面直接编译src目录 1 idea项目结构如下 2 web目录为最终部署的代码 WEB-INF下面没有 classes 目录 3 使用javac 编译src javac -encod…

Python中的数据可视化:阶梯图matplotlib.pyplot.step()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 Python中的数据可视化: 阶梯图 matplotlib.pyplot.step() [太阳]选择题 matplotlib.pyplot.step()的功能是? import matplotlib.pyplot as plt import numpy as…

Python | Leetcode Python题解之第75题颜色分类

题目&#xff1a; 题解&#xff1a; class Solution:def sortColors(self, nums: List[int]) -> None:n len(nums)p0, p2 0, n - 1i 0while i < p2:while i < p2 and nums[i] 2:nums[i], nums[p2] nums[p2], nums[i]p2 - 1if nums[i] 0:nums[i], nums[p0] num…

高效视频剪辑:批量剪辑添加srt字幕,快速制作专业视频

在视频制作过程中&#xff0c;字幕扮演着至关重要的角色&#xff0c;它们不仅能增强观众对视频内容的理解&#xff0c;还能提高视频的观感体验。然而&#xff0c;手动为每一个视频添加字幕是一项既耗时又繁琐的任务。现在有了云炫AI智剪和技巧&#xff0c;我们可以轻松地实现批…

fabric搭建生产网络

fabric搭建生产网络 一、生成组织结构与身份证书 解包 hyperledger-fabric-linux-amd64-2.5.0.tar.gz 1.1、crypto-config.yaml配置文件 ./bin/cryptogen showtemplate > crypto-config.yaml 将crypto-config.yaml内容修改为&#xff1a; # -------------------------…

Java的事件处理机制

Java事件处理机制 Java事件处理是采取“委派事件模型”。当事件发生时&#xff0c;产生事件的对象&#xff0c;会把此“信息”传递给“事件的监听者”处理&#xff0c;这里所说的“信息”实际上就是java.awt.event事件类库里某个类所创建的对象&#xff0c;把它称为“事件的对…

偏微分方程算法之混合边界条件下的差分法

目录 一、研究目标 二、理论推导 三、算例实现 四、结论 一、研究目标 我们在前几节中介绍了Poisson方程的边值问题&#xff0c;接下来对椭圆型偏微分方程的混合边值问题进行探讨&#xff0c;研究对象为&#xff1a; 其中&#xff0c;为矩形区域&#xff0c;为上的连续函数…