【问题标题】:golang API with echo framework带有 echo 框架的 golang API
【发布时间】:2021-06-22 18:58:21
【问题描述】:

我正在使用一个名为 echo (https://github.com/labstack/echo) 的轻量级 Web 框架,我正在尝试用它构建一个非常简单的 API。

这是我的路线之一

 e.Get("/v1/:channel/:username", getData)

这是 getData 函数,它从 mysql 数据库中执行非常简单的 SELECT 操作

func getData(c echo.Context) error {
  quote := new(Quote)  
  for rows.Next() {
        var username string
        var message string
        err = rows.Scan(&username, &message)
        checkErr(err)
        quote.username = username
        quote.message = message
  }
  log.Println(quote)

  defer rows.Close()
  return c.JSON(http.StatusOK, quote)
}

我也有这个返回值的基本结构

type Quote struct {
    username string
    message  string
}

遗憾的是,我现在不知道如何返回 JSON。 当我尝试此代码时,来自服务器的响应始终只是 {} 我尝试了 return c.String ,它工作正常并输出响应,但我想返回一个 JSON。

我遵循了这个例子,在这里看不出问题。 https://github.com/labstack/echox/blob/master/recipe/crud/main.go

知道我做错了什么吗?

【问题讨论】:

    标签: json api go go-echo


    【解决方案1】:

    您的结构没有可导出的值,因为名称是小写的。

    type Quote struct {
        Username string `json:"username"`
        Password string `json:"password"`
    }
    

    您还可以注释编组密钥的名称,正如我在代码 sn-p 中发布的那样,因此如果您想将名称从内部表示更改为外部表示,您可以。

    【讨论】:

    • 有没有办法在不使用结构的情况下生成任意 json?
    • 您可以使用任何map[string]interface{} 编组为 JSON。例如。 t := map[string]interface{}{"field1: "value1",}str, err := json.Marshal(t)fmt.Println(string(str))@Homan
    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2013-02-17
    • 2011-01-28
    • 2020-09-24
    • 2012-06-04
    • 2019-06-21
    相关资源
    最近更新 更多