gpt4 book ai didi

go - 提供动态长度响应数据

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:35 25 4
gpt4 key购买 nike

我有一个使用 gin-gonic 和 golang 创建的应用程序。该应用程序根据请求返回 JSON。我的 JSON 是一些结构的数组。我有一个一个创建的结构,当一切准备就绪时,我用 c.String 输出

func getData(c *gin.Context) {
jsondoc, err := GetData()

if err != nil {
handleError(c, err)
return
}
c.Header("Content-Type", "application/json; charset=utf-8")
c.String(200, jsondoc)
}

我想做一些优化。我想在未准备好完整的 JSON 时开始向用户发送数据。当我掌握 JSON 的第一门艺术时,我可以开始发送到客户端浏览器。

这可能吗?要将一些阅读器界面返回到 gin-gonic,它会从中读取直到打开?

更新。有函数 DataFromReader 。例如,https://gin-gonic.com/api-example/serving-data-from-reader/ .但它需要设置一个 Content-Length 。对于我的数据,我没有这个值。因此,不应设置此 header 。

最佳答案

我已经找到了这样做的方法。很简单,把你的回复写到c.Writer

func getData(c *gin.Context) {
c.Statue(200)
c.Header("Content-Type", "application/json; charset=utf-8")
GetData(c.Writer)
}
func GetData(res io.Writer) {
res.Write([]byte("["))
res.Write(moreBytes)
res.Write(moreBytes2)

..... res.Write([]byte("]"))

但是没有很好的方法来处理错误。这需要更巧妙的设计

关于go - 提供动态长度响应数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54617626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com