当前位置:网站首页>【Go实战基础】gin 如何验证请求参数
【Go实战基础】gin 如何验证请求参数
2022-07-02 06:33:00 【菜鸟实战】
目录
一、简介
实战场景: 如何使用 gin 验证请求参数
二、知识点
gin 路由
结构体
结构体参数绑定
参数验证
http 状态码
三、菜鸟实战
马上安排!
1、创建 go文件
/*
* @Author: 菜鸟实战
* @Description: gin 如何验证请求参数
*/
// 知识点:
// # gin 路由
// # 结构体
// # 结构体参数绑定
// # 参数验证
// # http 状态码
package main
// 导入包
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
"runtime"
)
// 定义结构体
type Person struct {
Name string `form:"name" binding:"required"`
Age int `form:"age" binding:"required,gt=10"`
}
// 主函数
func main() {
// 使用内置函数打印
println("Hello", "菜鸟实战")
println("实战场景: ", "gin 如何验证请求参数")
// 初始化
r := gin.Default()
// GET 方法, 添加路由参数和回调
r.GET("/bind", testBind)
r.POST("/bind", testBind)
// 使用包函数打印
fmt.Printf("版本: %s \n", runtime.Version())
// 启动框架程序, 默认 8080 端口
r.Run()
}
// 自动根据结构体定义解析数据
func testBind(c *gin.Context) {
var person Person
// 这里是根据请求 header 的 content-type 来做 binding 操作
if err := c.ShouldBind(&person); err != nil {
c.String(http.StatusInternalServerError, "person bind error %v \n", err)
} else {
c.String(http.StatusOK, "%v \n", person)
}
}
// curl 验证方式
// bind get
// curl -X GET "http://127.0.0.1:8080/bind?a=1"
// curl -X GET "http://127.0.0.1:8080/bind?name=kitty&age=5"
// curl -X GET "http://127.0.0.1:8080/bind?name=kitty&age=21"
2、运行结果
Hello 菜鸟实战
实战场景: gin 如何验证请求参数
[GIN-debug] Listening and serving HTTP on :8080
(1)GET 方法, 添加验证范围外的路由参数和回调

(2)GET 方法, 再次添加验证范围外的路由参数和回调

(3)GET 方法, 添加验证范围内的路由参数和回调

菜鸟实战,持续学习!
边栏推荐
- Minecraft group service opening
- Sqli labs level 8 (Boolean blind note)
- Gocv split color channel
- Image transformation, transpose
- Qunhui NAS configuring iSCSI storage
- Qt QTimer类
- Find the node with the smallest value range in the linked list and move it to the front of the linked list
- [flask] ORM one-to-one relationship
- OpenFeign 简单使用
- OpenShift 容器平台社区版 OKD 4.10.0部署
猜你喜欢

Sqli labs level 12

OpenFeign 简单使用

win10使用docker拉取redis镜像报错read-only file system: unknown

Driving test Baodian and its spokesperson Huang Bo appeared together to call for safe and civilized travel

Finishing the interview essentials of secsha system!!!

C4D quick start tutorial - Chamfer

Tcp/ip - transport layer

Chrome debugging

Shengshihaotong and Guoao (Shenzhen) new energy Co., Ltd. build the charging pile industry chain

commands out of sync. did you run multiple statements at once
随机推荐
Honeypot attack and defense drill landing application scheme
Dip1000 implicitly tagged with fields
Illegal use of crawlers, an Internet company was terminated, the police came to the door, and 23 people were taken away
Linux安装Oracle Database 19c RAC
Dip1000 runaway
OpenShift 部署应用
MYSQL安装出现问题(The service already exists)
Detailed explanation of NIN network
寻找链表中值域最小的节点并移到链表的最前面
Openfeign is easy to use
Move a string of numbers backward in sequence
gocv图片裁剪并展示
Pyspark de duplication dropduplicates, distinct; withColumn、lit、col; unionByName、groupBy
Linux安装Oracle Database 19c
Chrome debugging
Solution and analysis of Hanoi Tower problem
Installing Oracle database 19C for Linux
NPOI 导出Word 字号对应
Minecraft air Island service
commands out of sync. did you run multiple statements at once