创建项目
创建项目 z-wiki
新建main.go
1 | package main |
目录下执行
1 | go mod init z-wiki |
运行
1 | go run main.go |
访问:http://localhost:8080/hello
设置启动端口
1 | port := "9999" |
允许跨域
下载
1 | go get github.com/gin-contrib/cors |
引用
1 | import "github.com/gin-contrib/cors" |
设置允许的域
1 | func main() { |
允许所有
1 | g.Use(cors.Default()) |
等效于
1 | corsConfig := cors.DefaultConfig() |
允许Header
1 | corsConfig := cors.DefaultConfig() |
路由拆分
main.go
1 | package main |
routers/user_router.go
1 | package routers |
访问:http://localhost:8080/user/info
注意:
对其他包暴露的方法首字母要大写。
静态化与重定向
我们想项目的根路由重定向到项目的static/index.html
中
手相添加静态目录
1 | // 设置静态文件目录 |
添加路由重定向
routers/index_router.go
1 | package routers |
加载路由
1 | routers.LoadIndex(g) |
请求参数
URL中的参数
1 | c.Query("userid") |
Form参数
1 | c.Param("userid") |
JSON参数
在 Gin 框架中,你可以使用 ShouldBindJSON()
方法来获取 POST 请求中的 JSON 参数。
以下是一个示例代码,演示如何在 Go 中使用 Gin 框架获取请求的 JSON 参数:
假设有一个 POST 请求发送了一个 JSON 参数,如 {"name": "Alice", "age": 30}
。
1 | package main |
在上面的示例中,我们定义了一个 Person
结构体来表示 JSON 中的参数。在路由 /person
中,我们使用 ShouldBindJSON()
方法将请求的 JSON 参数绑定到 person
变量中。如果绑定成功,则返回 JSON 格式的姓名和年龄信息;如果绑定失败,则返回错误信息。
当发送 POST 请求到 http://localhost:9999/person
并携带 JSON 参数时,Gin 框架将解析请求中的 JSON 参数,并将其存储在 person
变量中。然后我们可以通过 person.Name
和 person.Age
访问参数的值。
文件参数
1 | file, err := c.FormFile("file") |
请求Header
1 | userId := c.Request.Header.Get("Z-UserId") |
文件上传
file_router.go
1 | package routers |
resultvo.go
1 | package model |
配置读取
配置文件
config/config.json
1 | { |
工具类
utils/config_reader.go
1 | package utils |
调用
1 | config := utils.ReadConfig() |
JSON序列化与反序列化
1 | package main |