看看Gin框架是如何实现的

时间:2024-10-11 07:12:00

基本使用

gin是一个高性能的golang web框架,它的代码其实很少,相对于spring来说,搞懂gin真是砍瓜切菜

先来看一下gin的基础用法

import "/gin-gonic/gin"

func Init() {
	r := ()
	initRoute(r)
	()
}

func initRoute(r *) {
	("ping", handler)
}

func handler(ctx *) {
	(200, "Hello World!")
}

这个例子里,我们启动了一个简单的web服务,使用创建一个Engine对象,Engine是Gin核心中的核心,我们后面会具体讲解。之后通过initRoute注册一个路由,当访问localhost:8080/ping的时候,就会返回Hello World!。

最后调用让服务启动。只需要很少的几行代码,就能通过gin启动一个web服务。我们主要探索它的实现原理,关于gin更多的语言特性和用法这里就不细说了,更多例子可以前往Gin Examples.

Engine

官网解释:Engine是框架的实例,它包含了复用器、中间件和各类配置。

type Engine struct {
	// 路由组
	RouterGroup

	// 如果设置为true,如果/foo/没有匹配到路由,自动重定向到/foo
	RedirectTrailingSlash bool

	// 和RedirectTrailingSlash类似,对path做一些修正
	RedirectFixedPath bool

	HandleMethodNotAllowed bool

	ForwardedByClientIP bool

	// DEPRECATED
	AppEngine bool

	// 是否通过来获取参数
	UseRawPath bool

	// If true, the path value will be unescaped.
	// If UseRawPath is false (by default), the UnescapePathValues effectively is true,
	// as  go