我使用名为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
知道我做错了吗?
答案 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 身份验证、日志记录请求等的支持。