gin demo

gin demo

演示参数校验

复制代码
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"

    "github.com/gin-gonic/gin"
    // "context"
)

type Userinfo struct {
    Username string `form:"username"  json:"username" xml:"username"  binding:"required,oneof=public private"`
    Password string `form:"password"  json:"password" xml:"password" binding:"required"`
    // Password string `form:"password"  json:"password" xml:"password" binding:"required"`
}

type Login struct {
    User     string `form:"user" json:"user" xml:"user"  binding:"required"`
    Password string `form:"password" json:"password" xml:"password" binding:"required"`
}

func readAllRequest(ctx *gin.Context) (error, []byte) {
    data, err := ioutil.ReadAll(ctx.Request.Body)
    if err != nil {
        return err, nil
    }
    return nil, data
}

func main() {
    r := gin.Default()
    r.POST("/pingpost", func(c *gin.Context) {
        // err, data := readAllRequest(c)
        // if err != nil {
        //     fmt.Println(err)
        // }
        // obj := gjson.Parse(string(data))
        // fmt.Println(obj)
        // id1 := c.PostForm("username")
        // id2 := c.PostForm("password")
        // fmt.Printf("id1: %v; id2: %v", id1, id2)
        var json Userinfo
        if err := c.ShouldBind(&json); err != nil {
            c.JSON(200, gin.H{"message": err.Error()})
            return
        }
        fmt.Println(json)
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })

    r.POST("/login", func(c *gin.Context) {
        var json Login
        if err := c.ShouldBindJSON(&json); err != nil {
            c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
            return
        }

        fmt.Println(json)

        c.JSON(200, gin.H{"status": "you are logged in"})
    })
    r.Run(":8081") // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}
复制代码

 

posted on   思此狂  阅读(282)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2017-07-10 express-cookie

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示