8

GoとパッケージGin-Gonicを使用してREST APIの開発を開始しています。アイデアは、JSON 形式で POST 要求を受け取り、この呼び出しを別のアプリケーション (これも API) にリダイレクトする REST API を作成することです。ここにコードの平和があります:

package main

import (
    "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
}

関数で、送信した完全な JSON を返信しr.Posts("/foo",...)たいと思います。c.JSON

curl -H "Content-Type: application/json" -X POST -d '{"user":"xyz","password":"xyz"}' http://localhost:8080/foo

入力 JSON と同じ構造を持つ構造体を作成して JSON ファイルをバインドする例を見てきました ( https://github.com/gin-gonic/ginで Gin-Gonic の例を確認してください)。ただし、フォーマットを気にせずに完全な文字列を再送信するだけで済みます。何か案は?

4

2 に答える 2