当前位置: 首页 > news >正文

【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.lryc.cn/news/345660.html

相关文章:

  • dev c++调试录入数字后回车直接关闭
  • java期末复习
  • 让新手变中手的ChatGPT 使用方法
  • 桥接模式类图与代码
  • Oracle count的优化-避免全表扫描
  • leetcode17. 电话号码的字母组合
  • 如何设计与管理一个前端项目
  • 【MQTT】mosquitto 的 “下载、交叉编译、使用” 详细教程,手把手搭建一个MQTT Broker
  • 用云手机打造海外社媒矩阵
  • 第 8 章 机器人平台设计之底盘实现(自学二刷笔记)
  • ✔ ★Java项目——设计一个消息队列(五)【虚拟主机设计】
  • ntfs文件系统的优势 NTFS文件系统的特性有哪些 ntfs和fat32有什么区别 苹果电脑怎么管理硬盘
  • Python Web框架Django项目开发实战:创建在线学习应用
  • 用得助全媒体呼叫中心,让AI落到实处帮品牌做营销
  • 【吃透Java手写】2-Spring(下)-AOP-事务及传播原理
  • Spring原理分析--获取Environment资源对象
  • Android GPU渲染SurfaceFlinger合成RenderThread的dequeueBuffer/queueBuffer与fence机制(2)
  • 人民币数字和中文汉字转换
  • 07_Flutter使用NestedScrollView+TabBarView滚动位置共享问题修复
  • Java解决垂直鉴权问题(对垂直权限进行校验)
  • 【MySQL工具】pt-heartbeat
  • 实现vant的年月日时分秒组件
  • typescript 命名空间、装饰器
  • GPT问答SAP BW
  • 使用zdppy_amauth开发激活用户接口
  • c++ memset 指针示例
  • 24考研双非上岸武汉理工大学电子信息专硕,855考研经验
  • 使用KubeKey 快速交付k8s v1.28.8集群
  • nginx--压缩https证书favicon.iconginx隐藏版本号 去掉nginxopenSSL
  • 通俗的理解网关的概念的用途(四):什么是网关设备?(网络层面)