핸들러 함수로 전달된 컨텍스트를 통해 클라이언트가 보낸 HTTP 요청을 파싱할 수 있습니다.

func (c *gin.Context) {
	// 요청 처리
    
    // 응답 처리
}

요청 읽기

URI 파라미터

바인딩한 URI정보를 얻는 방법입니다.

r.GET("/user/:name/*action", func(c *gin.Context) {
	name := c.Param("name")
	action := c.Param("action")
})

// - /user/jhon/info ->
// - name = jhon
// - action = info

Param() 함수로 URI 파라미터를 읽습니다.

URI Query

r.GET("/welcome", func(c *gin.Context) {
	firstname := c.DefaultQuery("firstname", "Guest")
	lastname := c.Query("lastname")
	pw, isInputed := c.GetQuery("password")
})

DefaultQuery() 는 Query가 없을 시 미리 설정한 Default값을 리턴합니다.

Query() 함수는 Query가 없을 시 "" 를 리턴 합니다.

GetQuery() 함수는 Query가 없을 시 ("", false) 를, Query 값이 없을시 ("", true) 를 Query 값 존재 시 ("value", true) 를 리턴 합니다.

//     GET /?name=Manu&lastname=
("Manu", true) == c.GetQuery("name")
("", false) == c.GetQuery("id")
("", true) == c.GetQuery("lastname")
r.GET("/welcome", func(c *gin.Context) {
	requestContent := c.GetHeader("Content-Type")
})

GetHeader() 함수로 요청 헤더를 읽습니다.

PostForm

r.GET("/welcome", func(c *gin.Context) {
	requestPath := c.PostForm("path")
    name := c.DefaultPostForm("name", "Guest")
	email, isInputed := c.GetPostForm("email")
})

POST 요청 시 Form 정보를 읽을 때 사용 합니다.

[email protected]  -->  ("[email protected]", true) := GetPostForm("email") // set email to "[email protected]"
email=                  -->  ("", true) := GetPostForm("email") // set email to ""
                        -->  ("", false) := GetPostForm("email") // do nothing with email