Cara Validasi Payload Yang Tidak Diketahui Type Datanya Golang Gin

PHOTO EMBED

Tue Jul 18 2023 03:07:09 GMT+0000 (Coordinated Universal Time)

Saved by @yogitaunay #go

func handlePayload(c *gin.Context) {
    var payload interface{}

    if err := c.ShouldBindJSON(&payload); err != nil {
        c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
        return
    }

    // Melakukan pengecekan tipe data secara dinamis
    switch p := payload.(type) {
    case map[string]interface{}:
        // Tipe data berupa map[string]interface{}
        // Lakukan sesuatu dengan payload berupa map
        fmt.Println("Received payload as map:", p)
    case []interface{}:
        // Tipe data berupa []interface{}
        // Lakukan sesuatu dengan payload berupa slice
        fmt.Println("Received payload as slice:", p)
    default:
        // Tipe data lainnya
        // Lakukan sesuatu dengan payload sesuai kebutuhan
        fmt.Println("Received payload with unknown type")
    }

    c.JSON(http.StatusOK, gin.H{"message": "Payload received successfully"})
}
content_copyCOPY