对于初学者,挑选 go 架构时,推荐考虑:beego:轻巧、实用,适宜快速开发简易应用软件。gin:高性能、可定制,适用搭建 api 和微服务。echo:简约、高性能,适宜搭建简单 restful api。
新手在 Go 时应选哪个架构?
针对 Go 新手来讲,选择合适的架构针对快速构建强劲并可拓展的应用程序尤为重要。本文将介绍三种顶尖 Go 架构,并协助你根据自身的特定需求选择最佳架构。
Beego:轻量且易于应用
Beego 是一个轻量、灵便且易于使用的 Web 开发框架。它简易 API 和直观地词法特别适合新手。它含有开箱即用的 ORM、缓存和日志纪录等各种特点。实战案例 :建立一个简单的 REST API:
import(
"github.com/beego/beego/v2/server/web"
)
typeUserControllerstruct{
web.Controller
}
func(cUserController)Get(){
c.Data["json"]=map[string]interface{}{"message":"Hello,world!"}
c.ServeJSON()
}
funcmain(){
web.Router("/",&UserController{})
web.Run(":8080")
}
Gin:高性能且可定制
Gin 是一个高性能、可扩展且可定制的 Web 架构。它因其迅速性能、简单 API 和强大的中间件适用而著称。这是搭建 API、即时应用软件和微服务的最佳选择。实战案例 :创建一个JSON Web 令牌(JWT)验证中间件:
import(
"github.com/gin-gonic/gin"
"github.com/golang-jwt/jwt"
)
funcJWTMiddleware()gin.HandlerFunc{
returnfunc(cgin.Context){
token:=c.Request.Header.Get("Authorization")
iftoken==""{
c.AbortWithStatus(http.StatusUnauthorized)
return
}
claims:=jwt.MapClaims{}
_,err:=jwt.ParseWithClaims(token,&claims,func(tokenjwt.Token)(interface{},error){
return[]byte("secret"),nil
})
iferr!=nil{
c.AbortWithStatus(http.StatusUnauthorized)
return
}
c.Set("claims",claims)
c.Next()
}
}
funcmain(){
router:=gin.Default()
router.Use(JWTMiddleware())
router.GET("/protected",func(cgin.Context){
claims:=c.MustGet("claims").(jwt.MapClaims)
c.JSON(http.StatusOK,gin.H{
"message":"Protecteddata",
"claims":claims,
})
})
router.Run(":8080")
}
Echo:极简风格和高性能
Echo 是一个极简风格、高性能且易于使用的 Web 架构。它因其洁净的 API、优异的文档和快速开启时长而着称。这是搭建简易而有效的RESTful API 和微服务的绝佳选择。实战案例 :应用 Echo 模版渲染 HTML 页面:
import(
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
)
funcmain(){
e:=echo.New()
e.Renderer=&template.Renderer{
Directory:"./templates/",
}
e.Use(middleware.Logger())
e.Use(middleware.Recover())
e.GET("/",func(cecho.Context)error{
returnc.Render(http.StatusOK,"index.html",map[string]interface{}{
"message":"Hello,world!",
})
})
e.Start(":8080")
}
以上就是新手在 Go 中应该选哪个架构?的详细内容,大量请关注其他类似文章!