Go-Optical에서 일관된 응답 형식을 갖는 방법

WBOY
풀어 주다: 2024-02-08 23:36:22
앞으로
545명이 탐색했습니다.

如何在 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,
    })
로그인 후 복사

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

{
    "created_at": "timestamp",
    "id": 3,
    "password": "123",
    "username": "bro"
}
로그인 후 복사

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

{
    "username":   "bro",
    "password":   "123",
    "created_at": "timestamp",
    "id":         3,
}
로그인 후 복사

解决方法

如果你想确保顺序,你可以使用 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)
로그인 후 복사

위 내용은 Go-Optical에서 일관된 응답 형식을 갖는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!