Gin Web框架实战速学 一 开张篇

  不知不觉,距离golang已经发布了10年了,劳资预言golang未来一定会是一等一非常好,非常棒的语言,不要问为什么,我就是这样觉得。微软2003年发布.net(目前好像也比较“”叼“的样子,注意“”叼”字加了双引号),苹果2007年发布Object C(后来变为Switch,劳资也不懂),Google作为世界上一等一的科技公司(至于百度不说了)

 

,肯定也要有自己的语言,于是golang 2009发布了,未来碾压.net,脚踢switch自然不在话下(这里不讨论语言好坏,其实能赚钱的技术好语言)。所以学习golang是很值得的。

可以参考文章:

部落图鉴之 Go:爹好还这么努力

但本教程不是教你学golang基础知识,而是讲解golang web框架gin,所以go环境自行安装,go基础请自行恶补。本课程以“程序员在囧途在线教育“课程+github为参考+自己的一点唠叨

学习gin需具备:

1、已经了解go语法基础(go 1.11+).了解Linux、docker(基本操作)
2、对其他语言有过简单的web代码编写基础
3、对数据库、redis 等 有所基础了解,能自行搭建环境

git github地址
https://github.com/gin-gonic/gin

 

废话不多说,下面开始我们看教程:

 

一、创建项目,分几步

 

1、随便创建一个文件夹(不要有中文、空格和奇怪的字符串,没有为什么)
2、在 api.jeng.com下创建topic ,代表 话题相关API(其实起什么名字都无所谓)
3、cd进入topic执行: go mod init topic.jeng.com (mod为go包管理工具,php有composer,node有npm,java有maven,python有pip,咱们go也不能差吧)
4、在当前(topic目录)目录cmd(终端)下执行
go get github.com/gin-gonic/gin(gin会自动安装在你的gopath目录下的xxxxxx/pkg/mod/github.com/下)
5、用goland 打开topic目录(goland采用2018.3以上版本,否则不支持mod索引啥的)
6、设置goland(Fiel->setting->Go:[1、GOROOT必须大于1.11版本,2、Go Modules勾选Enable Go Modules])

 

 

项目目录文件如下:

 

 

 

二、开始写代码

 

在topic项目目录创建main.go文件

根据github的案例教程无脑输入一下内容

 

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()    //创建默认路由,其实就是一个handler
   //添加路由,不用为什么是 /ping(你可以可以设置为/user, /login),劳资复制GitHub官方的案例,保持原汁原味,所以多看官方文档 r.GET(
"/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) })
  //默认开启8080,如果需要开启其他的,可以设置r.Run(9090) r.Run()
// listen and serve on 0.0.0.0:8080 }

 

执行goland菜单栏的run,项目运行后,使用chrome浏览器访问  

http://localhost:8080/ping

即可看到输出内容   {"message":"pong"}  #擦,原来gin的作者喜欢打乒乓

 

 

完了,gin就是这么简单,简单得“让人发指

 

以下改装下代码:

其实代码也可以这样写:

package main
import "github.com/gin-gonic/gin"
type Topic struct{
    TopicID int
    TopicTitle string
}

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200,&Topic{101, "这是title"})  //传结构体
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

输出    {"TopicID":101,"TopicTitle":"这是title"}

 

或者这样写:

package main
import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {

        m:=make(map[string]string)
        m["topicid"]="102"
        m["topictitle"]="title--102"

        c.JSON(200,m)  //给map类型
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}

如果你想输出字符串,可以这样写

r.GET("/", func(c *gin.Context) {         
    c.Writer.Write([]
byte("firewdddeb"))
})

 

先讲这么些内容,不得不说gin真的非常好,非常棒,套用gin的话

Gin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to httprouter. If you need performance and good productivity, you will love Gin.

 

 

posted @ 2019-02-22 11:04  人间最美二月天  阅读(3232)  评论(0编辑  收藏  举报