当前位置:网站首页>【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 方法, 添加验证范围内的路由参数和回调

菜鸟实战,持续学习!
边栏推荐
- commands out of sync. did you run multiple statements at once
- Use of libusb
- Npoi export word font size correspondence
- Don't spend money, spend an hour to build your own blog website
- Tensorflow2 keras classification model
- Zipkin is easy to use
- 2022/2/14 summary
- Dip1000 implicitly tagged with fields
- Minecraft plug-in service opening
- 选择排序和插入排序
猜你喜欢

History of Web Technology

小米电视不能访问电脑共享文件的解决方案

Linux安装Oracle Database 19c RAC

How to realize asynchronous programming in a synchronous way?

CSDN Q & A_ Evaluation

Kubesphere virtualization KSV installation experience

Solution and analysis of Hanoi Tower problem

zipkin 简单使用

Kubedm deploys kubernetes v1.23.5 cluster

OpenShift 部署应用
随机推荐
Minecraft群組服開服
C4D quick start tutorial - Chamfer
C# 百度地图,高德地图,Google地图(GPS) 经纬度转换
Finishing the interview essentials of secsha system!!!
Find the node with the smallest value range in the linked list and move it to the front of the linked list
Essay: RGB image color separation (with code)
OpenShift构建镜像
2022/2/14 summary
小米电视不能访问电脑共享文件的解决方案
Sentinel 简单使用
AMQ6126问题解决思路
Installing Oracle database 19C RAC on Linux
Benefits of ufcs of D
Minecraft安装资源包
Openfeign facile à utiliser
Googlenet network explanation and model building
Realization of basic function of sequence table
commands out of sync. did you run multiple statements at once
kubernetes部署loki日志系统
gocv opencv exit status 3221225785