Maison > développement back-end > Golang > le corps du texte

Comment avoir un format de réponse cohérent dans go-optical

WBOY
Libérer: 2024-02-08 23:36:22
avant
545 Les gens l'ont consulté

如何在 go-optical 中拥有一致的响应格式

php小编子墨今天为大家介绍如何在 go-optical 中实现一致的响应格式。在开发过程中,我们经常会面临不同的请求和返回数据格式,这给前后端的协作带来了一定的困扰。而 go-optical 是一个强大的工具,它可以帮助我们轻松实现统一的响应格式,提高开发效率。本文将详细介绍 go-optical 的使用方法,帮助读者快速掌握如何在项目中应用这一工具,实现一致的响应格式,提升开发效率和协作效果。让我们一起来看看吧!

问题内容

我在此处的端点内有一个查询,

query := `SELECT * FROM "user" WHERE username = $1`
    row := db.QueryRow(query, user.Username)

    var (
        usn        string
        pass       string
        created_at string
        id         int
    )

    // binds the above variables to "row" that is returned by "db.QueryRow"
    // "row.Scan" will also release the connection
    if err := row.Scan(&usn, &pass, &created_at, &id); err != nil {
        return c.Status(500).JSON(fiber.Map{
            "error": err,
        })
    }

    return c.JSON(fiber.Map{
        "username":   usn,
        "password":   pass,
        "created_at": created_at,
        "id":         id,
    })
Copier après la connexion

当我到达这个端点时,响应是,

{
    "created_at": "timestamp",
    "id": 3,
    "password": "123",
    "username": "bro"
}
Copier après la connexion

我该如何做才能使响应就像我返回它的方式一样,

{
    "username":   "bro",
    "password":   "123",
    "created_at": "timestamp",
    "id":         3,
}
Copier après la connexion

解决方法

如果你想确保顺序,你可以使用 struct 而不是 map 。 地图不保留顺序键数

type UserResponse struct {
    Username  string `json:"username"`
    Password  string `json:"password"`
    CreatedAt string `json:"created_at"`
    ID        int    `json:"id"`
}

.... your code

response := UserResponse{
    Username:  usn,
    Password:  pass,
    CreatedAt: created_at,
    ID:        id,
}

return c.JSON(response)
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!