728x90
package main
import (
"log"
"net/http"
"github.com/gin-gonic/gin"
)
type GetUserParams struct {
//UIds를 int타입의 배열로 선언.
//uid의 변수명으로 입력되는 Querystring를 배열로 선언한다.
UIds []int `form:"uid" example="uid=111&uid=222&uid=333"`
}
func GetUserHandler(c *gin.Context) {
var params GetUserParams
//c.ShouldBind(¶ms) : Querystring값을 GetUserParams로 바인딩한다.
if c.ShouldBind(¶ms) != nil {
c.JSON(http.StatusBadRequest, gin.H{"params": params})
}else{
//UIds 배열값을 로그에 출력한다.
for i, uid := range params.UIds {
log.Printf("uid[%d]:%d", i, uid)
}
c.JSON(http.StatusOK, gin.H{"uids": params.UIds })
}
}
func main(){
r := gin.Default()
r.GET("/user", GetUserHandler)
r.Run(":9999")
}
// Test
// curl "http://127.0.0.1:9999/user?uid=111&uid=213"
// {"uids":[111,213]}
728x90
'Programming' 카테고리의 다른 글
[GO] go-file-rotatelogs : 로그파일 로테이션 기법 (0) | 2021.07.23 |
---|---|
[GO] Gin + Rotation Custom Log + (0) | 2021.07.23 |
[GO] struct tag 관련 글 (0) | 2021.07.19 |
[GO] Windows, macOS 및 Linux용 Go 프로그램을 교차 컴파일하는 방법 (0) | 2021.07.17 |
[GO] RESTAPI 문서화 도구 - Swagger + Gin Framework 적용하기 (0) | 2021.07.17 |
최근댓글