Go语言的四种开发框架

发布一下 0 0

今天为大家分享Go语言的四种开发框架。

一、beego

1. 简介

beego 是一个快速开发 Go 应用的 HTTP 框架,可以用来快速开发 API、Web 后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,并结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。

  1. MVC
  2. REST
  3. 智能路由
  4. 日志调试
  5. 配置管理
  6. 模板自动渲染
  7. layout设计
  8. 中间件插入逻辑
  9. 方便的JSON/XML服务

2. 安装

go get github.com/astaxie/beego

3. 示例代码

package mainimport (    "github.com/astaxie/beego")type MainController struct {    beego.Controller}func (this *MainController) Get() {    this.Ctx.WriteString("hello world")}func main() {    beego.Router("/", &MainController{})    beego.Run()}

4. 目录结构

├── conf│   └── app.conf├── controllers│   ├── admin│   └── default.go├── main.go├── models│   └── models.go├── static│   ├── css│   ├── ico│   ├── img│   └── js└── views    ├── admin    └── index.tpl

从上面的目录结构我们可以看出来 M(models 目录)、V(views 目录)和 C(controllers 目录)的结构, main.go 是入口文件。

二、Gin框架

1. 简介

  • Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等特点
  • 对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错
  • 借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范

1. 安装

go get -u github.com/gin-gonic/gin

2. 示例代码

package mainimport (    "net/http"    "github.com/gin-gonic/gin")func main() {    // 1.创建路由   r := gin.Default()   // 2.绑定路由规则,执行的函数   // gin.Context,封装了request和response   r.GET("/", func(c *gin.Context) {      c.String(http.StatusOK, "hello World!")   })   // 3.监听端口,默认在8080   // Run("里面不指定端口号默认为8080")    r.Run(":8000")}

三、Iris框架

1. 简介

Iris是一款Go语言中用来开发web应用的框架,该框架支持编写一次并在任何地方以最小的机器功率运行,如Android、ios、Linux和Windows等。该框架只需要一个可执行的服务就可以在平台上运行了。

Iris框架以简单而强大的api而被开发者所熟悉。iris除了为开发者提供非常简单的访问方式外,还同样支持MVC。另外,用iris构建微服务也很容易。

在iris框架的官方网站上,被称为速度最快的Go后端开发框架。在Iris的网站文档上,列出了该框架具备的一些特点和框架特性,列举如下:

1)聚焦高性能

2)健壮的静态路由支持和通配符子域名支持

3)视图系统支持超过6种以上模板引擎

4)支持定制事件的高可扩展性Websocket API

5)带有GC, 内存 & redis 提供支持的会话

6)方便的中间件和插件

7)完整 REST API

8)能定制 HTTP 错误

9)源码改变后自动加载

2. 安装

go get github.com/kataras/iris/v12@latest

3. 示例代码

package mainimport "github.com/kataras/iris/v12"func main() {    app := iris.Default()    app.Use(myMiddleware)    app.Handle("GET", "/", func(ctx iris.Context) {        ctx.JSON(iris.Map{"message": "hello World!"})    })    // Listens and serves incoming http requests    // on http://localhost:8080.    app.Run(iris.Addr(":8080"))}func myMiddleware(ctx iris.Context) {    ctx.Application().Logger().Infof("Runs before %s", ctx.Path())    ctx.Next()}

四、Echo框架

1. 简介

echo web框架是go语言开发的一种高性能,可扩展,轻量级的web框架。
echo框架真的非常简单,几行代码就可以启动一个高性能的http服务端。

2. 安装

$go get github.com/labstack/echo/v4

3. 示例代码

package mainimport (    "net/http"    "github.com/labstack/echo")func main() {    e := echo.New()    e.GET("/", func(c echo.Context) error {        return c.String(http.StatusOK, "Hello, World!")    })    e.Logger.Fatal(e.Start(":1323"))}

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/59008.html