带有echo框架的golang API

时间:2016-04-08 12:39:45

标签: json api go echo-framework

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

这是我的路线之一

margin: 0 auto 0;

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

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

我还有返回值的基本结构

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)
}

可悲的是,我现在无法弄清楚如何返回JSON。 当我尝试使用此代码时,来自服务器的响应始终只是type Quote struct { username string message string } 我尝试返回c.String工作正常并输出响应,但我想返回一个JSON。

我按照这个例子,在这里看不到问题。 https://github.com/labstack/echox/blob/master/recipe/crud/main.go

知道我做错了吗?

2 个答案:

答案 0 :(得分:9)

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

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

您还可以在代码段中发布已编组密钥的名称,因此如果您想将名称从内部更改为外部表示,则可以。

答案 1 :(得分:0)

试试 go-api-boot (https://github.com/SaiNageswarS/go-api-boot)

首先是 gRpc。支持 gRpc 网络开箱即用。此外,具有内置的 Mongo DB ODM。从 Mongo 获取 golang 结构,将 Mongo 模型复制到 proto,反之亦然。另外还内置了对 JWT 身份验证、日志记录请求等的支持。