当前位置:网站首页>【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"`
Age string `form:"age"`
}
// 主函数
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.StatusOK, "%v \n", person)
} else {
c.String(http.StatusOK, "person bind error\n", err)
}
}
// curl 验证方式
// bind get
// curl -X GET "http://127.0.0.1:8080/bind?name=kitty"
// curl -X GET "http://127.0.0.1:8080/bind?name=kitty&age=21"
// bind post
// curl -X POST "http://127.0.0.1:8080/bind" -d 'name=bob'
// curl -X POST "http://127.0.0.1:8080/bind" -d 'name=bob&age=17'
// bind post json
// curl -H "Content-Type:application/json" -X POST "http://127.0.0.1:8080/bind" -d '{"name":"你好, 菜鸟实战"}'
// curl -H "Content-Type:application/json" -X POST "http://127.0.0.1:8080/bind" -d '{"name":"你好, 菜鸟实战", "age":"18"}'
2、运行结果
Hello 菜鸟实战
实战场景: gin 高效神器,如何将参数绑定到结构体
[GIN-debug] Listening and serving HTTP on :8080
(1) GET 方法, 添加路由参数和回调
(2) POST 方法, 添加路由参数和回调
(3) POST 方法,json格式
菜鸟实战,持续学习!
边栏推荐
- Pyspark de duplication dropduplicates, distinct; withColumn、lit、col; unionByName、groupBy
- [blackmail virus data recovery] suffix Crylock blackmail virus
- Minecraft安装资源包
- Select sort and insert sort
- Minecraft module service opening
- OpenShift 容器平台社区版 OKD 4.10.0部署
- libusb的使用
- Synchronize files using unison
- Webflux responsive programming
- Shengshihaotong and Guoao (Shenzhen) new energy Co., Ltd. build the charging pile industry chain
猜你喜欢

Linux二进制安装Oracle Database 19c

C#钉钉开发:取得所有员工通讯录和发送工作通知

Nacos 下载启动、配置 MySQL 数据库

Introduction to the basic concept of queue and typical application examples

Flex layout

Getting started with k8s: building MySQL with Helm

zipkin 简单使用

Sqli labs level 8 (Boolean blind note)

2022/2/13 summary

C4D quick start tutorial - Chamfer
随机推荐
查看was发布的应用程序的端口
Qt——如何在QWidget中设置阴影效果
First week of JS study
Googlenet network explanation and model building
Don't spend money, spend an hour to build your own blog website
gocv opencv exit status 3221225785
CSDN Q & A_ Evaluation
Tensorflow2 keras classification model
Minecraft群组服开服
Qt的拖动事件
Linux安装Oracle Database 19c RAC
Installing Oracle database 19C for Linux
C# 高德地图 根据经纬度获取地址
Call Stack
OpenShift构建镜像
Dip1000 runaway
NPOI 导出Word 字号对应
2022/2/13 summary
OpenFeign 簡單使用
Gocv image cutting and display





