Gin - Go framework - 学习/实践

1.应用场景

主要用于学习Go Framework -- Gin,进行服务开发~

2.学习/操作

1.文档阅读

Gin - Github - 官方 Document

Gin中文文档

Documentation | Gin Web Framework -- 国外官网/文档

Gin 使用教程 | Laravel 学院

Go - 学习/实践_william_n的博客-CSDN博客_go 学习

知名项目

以下知名项目都是使用 Gin 框架开发的:

  • gorush:Go 编写的通知推送服务器。
  • fnproject:容器原生,云 serverless 平台。
  • photoprism:基于 Go 和 Google TensorFlow 实现的个人照片管理工具。
  • krakend:拥有中间件的超高性能 API 网关。
  • picfit:Go 编写的图像尺寸调整服务器。
  • gotify:基于 WebSocket 进行实时消息收发的简单服务器。
  • cds:企业级持续交付和 DevOps 自动化开源平台。

2.整理输出

https://github.com/gin-gonic/gin -- 推荐文档 -- 英文是比较易读的

最新版本

v1.7.7

Release Release v1.7.7 · gin-gonic/gin · GitHub

2.1 创建第一个demo

1. 步骤

➜  go-projects mkdir gin-demo

➜  go-projects cd gin-demo

➜  gin-demo code .

➜  gin-demo

➜  gin-demo go mod init gin-demo/basic                                                              
go: creating new go.mod: module gin-demo/basic
➜  gin-demo go get -u github.com/gin-gonic/gin                                                      
go get: added github.com/gin-contrib/sse v0.1.0
go get: added github.com/gin-gonic/gin v1.7.7
go get: added github.com/go-playground/locales v0.14.0
go get: added github.com/go-playground/universal-translator v0.18.0
go get: added github.com/go-playground/validator/v10 v10.10.0
go get: added github.com/golang/protobuf v1.5.2
go get: added github.com/json-iterator/go v1.1.12
go get: added github.com/leodido/go-urn v1.2.1
go get: added github.com/mattn/go-isatty v0.0.14
go get: added github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go get: added github.com/modern-go/reflect2 v1.0.2
go get: added github.com/ugorji/go/codec v1.2.6
go get: added golang.org/x/crypto v0.0.0-20220214200702-86341886e292
go get: added golang.org/x/sys v0.0.0-20220222200937-f2425489ef4c
go get: added golang.org/x/text v0.3.7
go get: added google.golang.org/protobuf v1.27.1
go get: added gopkg.in/yaml.v2 v2.4.0
➜  gin-demo 

2. 创建执行文件

touch example.go

编辑如下内容:

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() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
 

3. 运行文件

# run example.go and visit 0.0.0.0:8080/ping (for windows "localhost:8080/ping") on browser
$ go run example.go

➜  gin-demo  go run example.go
[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] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080

4. 测试服务

➜  gin-demo curl localhost:8080/ping
{"message":"pong"}%                                                                                      
➜  gin-demo curl  0.0.0.0:8080/ping
{"message":"pong"}%                                                                                      
➜  gin-demo 
 

正常,最简单的demo已经完成~~

2.2 Restful api

https://laravelacademy.org/post/21903

 

TBD

后续补充

...

3.问题/补充

TBD

4.参考

Gin 使用教程 | Laravel 学院

https://blog.csdn.net/william_n/article/details/102893655

https://github.com/gin-gonic/gin

https://github.com/ningxiaofa/gin-doc-cn

Documentation | Gin Web Framework

后续补充

...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值