Golang 转生到web世界 - gin新手村

Golang

Gin初探

网路上都有golang的各种框架,也不乏各式各样的比较文 ,我原本是选好要用另外一套的,但看了某些论坛文章的下面留言,都建议还是使用gin比较好,所以还是选择玩看看gin罗~~~ 就当体验看看 绝对不吃亏

Gin有什麽好处:

  • 速度快 性能好
  • 支援中间层
  • 错误管理
  • 支援各类型json xml...等
  • 支援restful

开始吧!! 首先起手来个go get, 使用go get 来安装gin看看
在终端机输入
github.com/gin-gonic/gin

执行完之後,我们来测试看看gin是不是真的能跑

我就在网路上找了一个范例

package main

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

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run(":8000") 
}

然後 go run来跑看看

输入 http://localhost:8000/ping

画面看起来是有了!

 [GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /ping                     --> main.main.func1 (3 handlers)
[GIN-debug] Listening and serving HTTP on :8000
[GIN] *********** | 404 |            0s |             ::1 | GET      "/"
[GIN] ***********| 404 |            0s |             ::1 | GET      "/favicon.ico"
[GIN] *********** | 404 |            0s |             ::1 | GET      "/"
[GIN] ***********| 200 |       311.3µs |             ::1 | GET      "/ping"

然後看终端机也确实吐了一些东西了!!!

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main(){
    
    router := gin.Default()

    router.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "Hello World")
    })
    router.Run(":8000")
}

从上面的程序码来看,我们使用gin的default来建立一个基础的路由,并把路由的规则跟function都透过他来取得,跟以往的框架差不多,通常这时候框架都会协助封装,以方便开发者使用,所以我们可以看到gin.Context的部分,Route.run是启动整个路由来开始为监听。

然後附上gin 的github连结 https://github.com/gin-gonic/gin

参考资料:
https://iter01.com/557699.html
https://github.com/gin-gonic/gin


<<:  CSS就可以!animation 与他的好夥伴 @keyframes

>>:  【设计+切版30天实作】|Day6 - 设计出背景上又有背景的吸睛小广告

自动化测试,让你上班拥有一杯咖啡的时间 | Day 14 - 取得 ESLint 支援

此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 今天要跟大家分享在 cypress...

Day14-hprof文件分析工具:mat(一)

mat介绍 mat全名:Memory Analyzer Tool。这篇要介绍的内容比较例外一点,ma...

LeetCode解题 Day19

115. Distinct Subsequences https://leetcode.com/pr...

Day23-这不是火腿 helm介绍

当你的k8s系统越来越大,当中各种pod的设定也会越来越多,如果又要分成开发 测试以及正式上线的版本...

【RPA入门】UiPath Studio 跟 Studio X 示范影片线上看

RPA 是未来5年内,全球80%的企业,不分产业、不分部门,都会优先采用的「营运流程自动化技术」 R...