結論
BindJSONしようとしているstructのfield(?)はpublicにしておかなければならないようです。
struct宣言とリクエストハンドラ宣言が同じpackage内だったとしても!
type User struct {
// name string -> ダメ
Name string
}
// Post POST method
func Post(ctx *gin.Context) {
var user User
ctx.BindJSON(&user)
fmt.Println("name:", user.Name)
}
考察
もしかしたらstructがBindJSON()に渡されるとき、fieldがpublicじゃないとgin側から見えないのかな(??)
みたいな?
あとがき
この問題について、参考に貼ったissueくらいで、日本語のものが見つからなかったので書きました。
くだらない記事ですが、初心者同志の手助けになれば幸いです。