I'm starting to develop a REST API using Go and package Gin-Gonic. The idea is to create a REST API that receives POST requests in a JSON format and redirects this call to another application (also a API). Here is a piece of code:
package mainimport ("fmt""github.com/gin-gonic/gin""net/http")func main() { r := gin.Default() r.GET("/status", func(c *gin.Context) { c.String(200, "on") }) r.GET("/user/:name", func(c *gin.Context) { name := c.Param("name") c.String(http.StatusOK, "Hello %s", name) }) r.GET("/user/:name/:action", func(c *gin.Context) { name := c.Param("name") action := c.Param("action") message := name +" is " + action c.String(http.StatusOK, message) }) r.POST("/foo", func(c *gin.Context) { fmt.Printf("%s", "At least I got here") message := c.PostForm() //??? c.JSON(200, gin.H{"status": message}) //??? }) r.Run(":8080") // listen an}
At function r.Posts("/foo",...)
I would like c.JSON
to send me back the full JSON that I sent:
curl -H "Content-Type: application/json" -X POST -d '{"user":"xyz","password":"xyz"}' http://localhost:8080/foo
I've seen examples where they bind the JSON file by creating a struct with the same structure as the input JSON (check Gin-Gonic examples at https://github.com/gin-gonic/gin ). However I only need to resend the full string without taking care of the format. Any ideas?