gin基础-1.初始gin框架

go原生http服务

在go中写一个web服务非常发方便快速

package main

import (
  "encoding/json"
  "fmt"
  "io"
  "net/http"
)

type Response struct {
  Code int    `json:"code"`
  Data any    `json:"data"`
  Msg  string `json:"msg"`
}

func GET(res http.ResponseWriter, req *http.Request) {
  // 获取参数
  fmt.Println(req.URL.String())

  byteData, _ := json.Marshal(Response{
    Code: 0,
    Data: map[string]any{},
    Msg:  "成功",
  })
  res.Write(byteData)

}
func POST(res http.ResponseWriter, req *http.Request) {
  // 获取参数
  byteData, _ := io.ReadAll(req.Body)
  fmt.Println(string(byteData))
  byteData, _ = json.Marshal(Response{
    Code: 0,
    Data: map[string]any{},
    Msg:  "成功",
  })
  res.Write(byteData)
}

func main() {

  http.HandleFunc("/get", GET)
  http.HandleFunc("/post", POST)

  fmt.Println("http server running: http://127.0.0.1:8080")
  http.ListenAndServe(":8080", nil)
}

但是在实际项目中使用原生go http库那会非常不方便。

主要体现在

  1. 参数解析与验证
  2. 路由不太明了
  3. 响应处理比较原始

gin框架

首先是安装第三方库

go get github.com/gin-gonic/gin

然后写gin程序都有一套固定的格式

  1. 初始化
  2. 写路由
  3. 监听运行

hello world

例如写一个helloworld

package main

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

func main() {
  // 1 初始化
  r := gin.Default()
  // 2 路由
  r.GET("/", func(c *gin.Context) {
    c.String(200, "hello world")
  })
  // 3 监听运行
  r.Run(":8080")
}

知识扩展

  1. 内网运行

如何让你的程序,能让内网中的其他小伙伴访问呢?

r.Run(":8080") // 等价于 r.Run("0.0.0.0:8080")
  1. 关闭debug输出

不想看到gin默认的那些debug输出,怎么办呢?

设置运行模式即可,默认是debug

gin.SetMode("release")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值