Dans le framework Go's Gin, vous pouvez recevoir à la fois des données et des images JSON à l'aide de requêtes multipart/form-data. Voici comment :
type request struct { Avatar *multipart.FileHeader `form:"avatar" binding:"required"` Payload struct { Username string `json:"username" binding:"required,min=4,max=20"` Desc string `json:"description" binding:"required,max=100"` } `form:"payload" binding:"required"` }
Dans ce code, Avatar spécifie le fichier image, tandis que Payload définit les données JSON. Notez que les balises de liaison sont utilisées pour la validation des données.
Dans votre gestionnaire de requêtes, utilisez c.ShouldBindWith() pour lier les données entrantes à la structure de la requête :
func (h *Handlers) UpdateProfile() gin.HandlerFunc { return func(c *gin.Context) { var u request if err := c.ShouldBindWith(&u, binding.FormMultipart); err != nil { c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err}) return } // Process avatar and Payload data as needed... } }
En résumé, vous peut utiliser des requêtes multipart/form-data pour recevoir à la fois des données JSON et des images dans le framework Go's Gin. Utilisez c.ShouldBindWith() avec la liaison appropriée pour analyser le corps de la requête et accéder aux données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!