핸들러 함수로 전달된 컨텍스트를 통해 클라이언트가 보낸 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")
Header
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