don't stop believing

Bind Uri 본문

Golang/Gin

Bind Uri

Tongchun 2019. 3. 14. 14:44

url path에 paramater가 추가되는 경우의 binding 방법입니다.

https://github.com/gin-gonic/gin#bind-uri


바로 코드를 보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main
import (
"github.com/gin-gonic/gin"
)
type User struct {
Name string `uri:"name" binding:"required"`
Age uint16 `uri:"age" binding:"required"`
ID string `uri:"id" binding:"required,uuid"`
}
func setupRouter() *gin.Engine {
// Disable Console Color
// gin.DisableConsoleColor()
r := gin.Default()
r.GET("/user/:name/age/:age/id/:id", func(c *gin.Context) {
var user User
if err := c.ShouldBindUri(&user); err != nil {
c.JSON(400, gin.H{"msg": err})
return
}
c.JSON(200, gin.H{"name": user.Name, "age": user.Age, "id": user.ID})
})
return r
}
func main() {
r := setupRouter()
// Listen and Server in 0.0.0.0:8080
r.Run(":8080")
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

다른 binding 방법과 마찬가지로 struct를 만들고 c.ShouldBindUri()로 대입하면 됩니다.

실행하고 아래와 같이 호출해 봅니다.

http://localhost:8080/user/tongchun/age/42/id/123e4567-e89b-12d3-a456-426655440000


binding이 잘되고 지정한데로 리턴됩니다.


'Golang > Gin' 카테고리의 다른 글

Goroutines inside a middleware  (0) 2019.03.14
How to write log file  (0) 2019.03.14
Only Bind Query String  (0) 2019.03.09
Bind Query String or Post Data  (0) 2019.03.09
Model binding and validation  (0) 2019.03.06