源码分析
实现
特性
快速基于 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。
可扩展性新建一个中间件非常简单,去查看示例代码吧。
快速入门
Engine
HTTP 协议的 8 种请求类型介绍HTTP 协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的不同操作方式,具体介绍如下:
Handle方法
Restful风格的API
路径参数- /:xx - Param("xx")对于类似这样的请求:http://127.0.0.1:8080/index/12,那么如何获取最后路径中12的值呢?
查询参数-/hello?xx=..? -Query()对于类似这样的请求:http://127.0.0.1:8080/index1?id=12,那么如何获取最后路径中12的值呢?
通用参数匹配 /user/:name/*action当我们需要动态参数的路由时,如 /user/:id,通过调用不同的参数 :id 动态获取相应的用户信息。其中 /user/:id/*type,*type 的参数为可选。
普通方式提交表单-post -PostForm("xxx")1、ctx.PostForm
例子
上传单个文件
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |