文章目录

  • Gin框架简介和快速使用
  • 1 Go Web框架介绍
  • 1.1 Gin
  • 1.2 Beego
  • 1.3 Iris
  • 1.4 Echo
  • 2 Gin安装和快速使用
  • 2.1 安装
  • 2.2 第一个hello world
  • 2.3 运行


Gin框架简介和快速使用

1 Go Web框架介绍

1.1 Gin

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

目前在很多使用Golang的中小型公司中进行业务开发,使用Gin框架的很多

Gin框架源码地址:https://github.com/gin-gonic/gin

Gin框架文档地址:https://gin-gonic.com/zh-cn/docs/

1.2 Beego

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

Beego框架受欢迎的原因还有一个就是Beego是中国人开发的,文档都是中文的

Beego框架源码地址:https://github.com/beego/beego/

Beego框架文档地址:https://beego.vip/docs/intro/

1.3 Iris

Iris是一个高效、设计良好的跨平台web框架,具有一系列强大的功能。通过无限的潜力和可移植性构建自己的高性能web应用程序和API,Iris与Gin的学习曲线几乎相同

Iris框架源码地址:https://github.com/kataras/iris

Iris框架文档地址:https://www.iris-go.com/docs/#/

1.4 Echo

高性能、可扩展、极简的Go web框架

//1 优化路由器
高度优化的 HTTP 路由器,动态内存分配为零,可智能地对路由进行优先级排序。
//2 可扩展
构建健壮且可扩展的 RESTful API,轻松组织成组。
//3 自动 TLS
自动安装 TLS 证书,https访问
//4 HTTP/2
HTTP/2 支持提高了速度并提供了更好的用户体验。
//5 中间件
许多内置的中间件可以使用,或者自己定义。中间件可以设置在根、组或路由级别。
//6 数据绑定
HTTP 请求负载的数据绑定,包括 JSON、XML 或表单数据。
//7 数据渲染
用于发送各种 HTTP 响应的 API,包括 JSON、XML、HTML、文件、附件、内联、流或 Blob。
//8 模板
使用任何模板引擎进行模板渲染。
//9 可扩展
定制的中央 HTTP 错误处理。易于扩展的 API。

Echo框架源码地址:https://github.com/labstack/echo

Echo框架文档地址:https://echo.labstack.com/guide/

2 Gin安装和快速使用

2.1 安装

要安装Gin软件包,您需要安装Go并首先设置Go工作区,Go 1.13 及以上版本

1.安装gin

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

2.导入

import “github.com/gin-gonic/gin”

3.(可选)导入net/http。例如,如果使用常量,则需要这样做http.StatusOK。

import “net/http”

2.2 第一个hello world

package main

import (
    "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")
}

2.3 运行

//1 编译并运行:go run example.go
//2 在浏览器中访问 127.0.0.1:8080