Maison >développement back-end >Golang >Comment puis-je recevoir simultanément des données et des images JSON dans le framework Gin de Go ?

Comment puis-je recevoir simultanément des données et des images JSON dans le framework Gin de Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-22 18:30:33279parcourir

How Can I Receive JSON Data and Images Simultaneously in Go's Gin Framework?

Réception de données et d'images JSON avec le framework Go's Gin

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn