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

菜鸟实战,持续学习!
边栏推荐
- Move a string of numbers backward in sequence
- Detailed explanation of NIN network
- C # save web pages as pictures (using WebBrowser)
- Linux二进制安装Oracle Database 19c
- Minecraft插件服开服
- 队列的基本概念介绍以及典型应用示例
- Nacos 下载启动、配置 MySQL 数据库
- Finishing the interview essentials of secsha system!!!
- Minecraft安装资源包
- Honeypot attack and defense drill landing application scheme
猜你喜欢

commands out of sync. did you run multiple statements at once

Gateway is easy to use

Minecraft plug-in service opening

Classes and objects (instantiation of classes and classes, this, static keyword, encapsulation)

Sentinel reports failed to fetch metric connection timeout and connection rejection

Solution of Xiaomi TV's inability to access computer shared files

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

QT -- how to set shadow effect in QWidget

Tcp/ip - transport layer
![[blackmail virus data recovery] suffix Hydra blackmail virus](/img/27/f44334cf98229d0f8b33c70a878ca8.jpg)
[blackmail virus data recovery] suffix Hydra blackmail virus
随机推荐
Minecraft group service opening
统计字符串中各类字符的个数
Benefits of ufcs of D
Minecraft module service opening
Sentinel 简单使用
History of Web Technology
选择排序和插入排序
Finishing the interview essentials of secsha system!!!
Redis安装部署(Windows/Linux)
Minecraft安装资源包
commands out of sync. did you run multiple statements at once
Gocv image cutting and display
Using recursive functions to solve the inverse problem of strings
zipkin 简单使用
Kubernetes deploys Loki logging system
Dip1000 implicitly tagged with fields
Oracle修改表空间名称以及数据文件
Multi version concurrency control mvcc of MySQL
Essay: RGB image color separation (with code)
[blackmail virus data recovery] suffix Hydra blackmail virus