前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go-RESTful-处理请求和响应(二)

Go-RESTful-处理请求和响应(二)

原创
作者头像
堕落飞鸟
发布2023-04-25 13:54:47
3650
发布2023-04-25 13:54:47
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

返回数据

在 Go-RESTful 中,可以使用 Response 对象来返回数据。 Response 对象有许多方法可用于设置响应头、状态码和响应正文。

以下是一个示例,演示如何返回 JSON 数据:

代码语言:javascript
复制
type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func getPersonHandler(req *restful.Request, res *restful.Response) {
    // 从数据库中获取 Person 对象
    person := &Person{
        Name: "Alice",
        Age:  30,
    }
    res.WriteAsJson(person)
}

func main() {
    ws := new(restful.WebService)
    ws.Route(ws.GET("/people/{id}").To(getPersonHandler))
    restful.Add(ws)
    http.ListenAndServe(":8080", nil)
}

在这个示例中,我们编写了一个名为 getPersonHandler 的处理程序,它从数据库中获取一个名为 Alice、年龄为 30Person 对象。然后,我们使用 res.WriteAsJson() 方法将该对象作为 JSON 格式写入响应体中。

除了 JSON,还可以使用其他格式返回数据,例如 XML、HTML 或纯文本。以下是一个示例,演示如何返回 HTML:

代码语言:javascript
复制
func indexHandler(req *restful.Request, res *restful.Response) {
    html := `
    <!DOCTYPE html>
    <html>
    <head>
        <title>Hello, world!</title>
    </head>
    <body>
        <h1>Hello, world!</h1>
    </body>
    </html>
    `
    res.Write([]byte(html))
}

func main() {
    ws := new(restful.WebService)
    ws.Route(ws.GET("/").To(indexHandler))
    restful.Add(ws)
    http.ListenAndServe(":8080", nil)
}

在这个示例中,我们编写了一个名为 indexHandler 的处理程序,它返回一个包含简单 HTML 页面的字符串。然后,我们使用 res.Write() 方法将该字符串作为 HTML 写入响应体中。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 返回数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档