1. 简介
net/httpnet/httpGin
net/httpGin
net/httpGinGin
2. 复杂路由场景处理
在实际的Web应用程序开发中,使用同一个路由前缀的场景非常普遍,这里举两个比较常见的例子。
/v1/v2
还有另外一个场景,一个大型Web应用程序经常是由多个模块组成,每个模块负责不同的功能。为了更好地组织代码和区分不同模块的路由,经常都是使用模块名作为路由前缀。
net/http
http.HandleFunc
v1/v1/v2/...
GinGin
router.Groupv1
net/httpGin
3. 中间件处理
在web应用请求处理过程中,除了执行具体的业务逻辑之外,往往需要在这之前执行一些通用的逻辑,比如鉴权操作,错误处理或者是日志打印功能,这些逻辑我们统称为中间件处理逻辑,而且往往是必不可少的。
首先对于错误处理,在应用程序的执行过程中,可能会发生一些内部错误,如数据库连接失败、文件读取错误等。合理的错误处理可以避免这些错误导致整个应用崩溃,而是通过适当的错误响应告知客户端。
对于鉴权操作,在许多web处理场景中,经常都是用户认证之后,才能访问某些受限资源或执行某些操作。同时鉴权操作还可以限制用户的权限,避免用户有未经授权的访问,这有助于提高程序的安全性。
net/http
net/httperrorHandlerauthMiddleware
handler
handlerhandler
Gin
router.Group("/")authenticatedUseauthMiddlewareauthMiddleware
net/httphandler
ginUsenet/httphandlergin
ginginrouterUsenet/http
net/httpgin
4. 数据绑定
net/http
FormValue
Gin
ShouldBind
net/httpginginapiapinet/http
5. 总结
net/httpnet/http
Ginnet/http
Ginnet/httpnet/http