jjnoob

tizi-beego-06-响应请求

2019-07-28
jjnoob

参考

注意: 如果使用beego开发api,那么在app.conf中设置AutoRender = false, 禁止自动渲染模板,否则beego每次处理请求都会尝试渲染模板,如果模板不存在则报错。

一. 返回json数据

下面是返回json数据的例子:

// 定义struct
// 如果struct字段名跟json字段名不一样,可以使用json标签,指定json字段名
type User struct {
    // - 表示忽略id字段
	Id       int	`json:"-"`
	Username string `json:"name"`
	Phone    string
}

func (this *UserController) Get() {
    // 定义需要返回给客户端的数据
    user := User{1, "tizi365", "13089818901"}
    
    // 将需要返回的数据赋值给json字段
    this.Data["json"] = &user
    
    // 将this.Data["json"]的数据,序列化成json字符串,然后返回给客户端
    this.ServeJSON()
}

二. 返回xml数据

下面是返回xml数据的处理方式跟json类似。

例子:

// 定义struct
// 如果struct字段名跟xml字段名不一样,可以使用xml标签,指定xml字段名
type User struct {
    // - 表示忽略id字段
	Id       int	`xml:"-"`
	Username string `xml:"name"`
	Phone    string
}

func (this *UserController) Get() {
    // 定义需要返回给客户端的数据
    user := User{1, "tizi365", "13089818901"}
    
    // 将需要返回的数据赋值给xml字段
    this.Data["xml"] = &user
    
    // 将this.Data["xml"]的数据,序列化成xml字符串,然后返回给客户端
    this.ServeXML()
}

三. 返回jsonp数据

返回jsonp数据,于返回json数据方式类似。

例子:

func (this *UserController) Get() {
    // 定义需要返回给客户端的数据
    user := User{1, "tizi365", "13089818901"}
    
    // 将需要返回的数据赋值给jsonp字段
    this.Data["jsonp"] = &user
    
    // 将this.Data["json"]的数据,序列化成json字符串,然后返回给客户端
    this.ServeJSONP()
}

四. 返回html

如果我们开发的是网页,那么通常需要返回html代码,在beego项目中关于html视图部分,使用的是模板引擎技术,渲染html,然后将结果返回给浏览器。

例子:

func (c *MainController) Get() {
    // 设置模板参数
	c.Data["Website"] = "tizi365.com"
	c.Data["Email"] = "tizi365@demo.com"
	
	// 需要渲染的模板, beego会渲染这个模板,然后返回结果
	c.TplName = "index.tpl"
}

Similar Posts

Content