Gin 框架简介

如果你想找一个简单、高性能且社区完备的 Go 语言框架,您一定会喜欢 Gin。

Gin 是一个用 Go语言 (Golang) 编写的 Web 框架。 它起源于 martini ,但性能要好得多。

Gin 框架的性能提升,主要的得益于它的 httprouter 速度提高了 40 倍。但是 Gin 真正超过 martini 主要是还是得益于它的生态建设。

Martini 是指 (https://martini.codegangsta.io,最早的 Go 语言 Web 框架之一,只不过现在几乎无人问津了。

本章节,我们主要介绍 Gin 是什么,它解决了哪些问题,以及它如何帮助你的项目。

或者, 如果你已经准备在项目中使用 Gin,请访问 快速入门

Gin 特性

性能高

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

支持中间件

从接收 HTTP 请求开始到返回响应内容,都可以由一系列中间件和最终操作来处理。 例如:

  • 使用 Logger 中间件记录日志
  • 使用 BasicAuth 进行身份认证 (Authorization)
  • 其它的比如 GZIP,
  • 最终操作 DB。

完备的 Crash 处理

Gin 可以 catch 一个发生在 HTTP 请求中的异常或错误(panic) 并 recover它。

这样,我们的服务器将始终可用。同时,我们还=可以向 Sentry 报告这个 panic!

JSON 验证

Gin 天然支持 JSON:

  • 内置了 ShouldBindJSON() 方法和 BindJSON() 方法用于获取和解析 HTTP 请求中的 JSON。
  • 内置了 JSON() 方法用于响应 JSON 格式的数据并设置 application/json 响应内容头。
  • Gin 同时还内置了 gin.H() 方法用于快速拼装 JSON 内容。

支持路由组

Gin 内置了 group() 方法天然支持路由组功能。而且路由组功能天然能够使用 中间件。 这意味着,我们可以自定义哪些路由组是否需要授权,不同的 API 版本……

此外,路由组可以无限制地嵌套而不会降低性能。

错误管理

Gin 提供的框架初始化 gin.Default() 内置了 LoggerRecovery 两大中间件,它们提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误,然后将它们写入日志文件,数据库并通过网络发送。

内置渲染

Gin 天然支持多种响应格式,比如 JSON,XML 和 HTML ,并且为这些格式提供了易于使用的 API。

可扩展性

自己创建一个中间件非常简单,简单 3 - 4 行就能搞定一个中间件原型来。

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.