gin フレームワークを使用して、POST されたデータが構造体フィールド タイプと一致しないかどうかを判断し、API ユーザーにエラーを通知しようとしています。
type CreateApp struct {
LearnMoreImage string `db:"learn_more_image" json:"learn_more_image,omitempty" valid:"string,omitempty"`
ApiVersion int64 `db:"api_version" json:"api_version" valid:"int,omitempty"`
}
...
func CreateApps(c *gin.Context) {
var json models.CreateApp
c.Bind(&json)
だから私が投稿するとき
curl -H "Content-Type: application/json" -d '{"learn_more_image":"someimage.jpg","api_version":"somestring"}' "http://127.0.0.1:8080/v1.0/apps"
フィールド 'api_version' (文字列として渡される) の POST されたデータが、バインドされている構造体フィールド (int) と一致しないかどうかを判断したいと思います。データが一致しない場合は、ユーザーにメッセージを送り返したいと思います。このため、ジン コンテキスト データをループして確認できることを望んでいました。
gin 関数 'c.Bind()' は、無効なデータとそれに続くすべてのデータ フィールドを省略しているようです。