go get -u "github.com/gin-gonic/gin"
기본적인 GET, POST Method 예시이다.
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"github.com/gin-gonic/gin"
)
func HomePage(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "홈페이지 입니다.",
})
}
func PostHomePage(c *gin.Context) {
body := c.Request.Body
value, err := ioutil.ReadAll(body)
if err != nil {
fmt.Println(err.Error())
}
var data map[string]interface{}
json.Unmarshal([]byte(value), &data) // JSON을 Go언어 자료형으로 변환(여기서는 map으로 변환)
c.JSON(http.StatusOK, gin.H{
"name": data["name"],
"age": data["age"],
})
doc, _ := json.Marshal(data) // Go언어 자료형을 JSON으로 변환(여기서는 map을 JSON으로 변환)
// doc == value
c.String(http.StatusOK, string(doc))
}
func QueryString(c *gin.Context) {
name := c.Query("name")
age := c.Query("age")
c.JSON(http.StatusOK, gin.H{
"name": name,
"age": age,
})
}
func PathParameter(c *gin.Context) {
name := c.Param("name")
age := c.Param("age")
c.JSON(http.StatusOK, gin.H{
"name": name,
"age": age,
})
}
func main() {
r := gin.Default()
r.GET("/", HomePage)
r.POST("/", PostHomePage)
/* body
{
"name": "young",
"age" : "25"
}
*/
r.GET("/query", QueryString) // /query?name=young&age=25
r.GET("/path/:name/:age", PathParameter) // /path/young/25
r.Run(":8080")
}