喵了个咪_
2020-08-11
54浏览量
Response 和 Request 一样需要在 Api 中进行初始化:
Response := phalgo.NewResponse(c)
Response 默认返回格式如下:
type RetParameter struct {
Code int `json:"code";xml:"code"`
Data interface{} `json:"data";xml:"data"`
Msg string `json:"msg";xml:"msg"`
}
code 为请求的状态码 , data 是具体返回的数据 , msg 是返回内容的描述例如"成功" , "失败"
我们最常用的就是成功返回 , RetSuccess接受一个接口类型的参数 , 此参数会填充到 data 中 , 例子如下:
return Response.RetSuccess("hello " + name + " Welcome to PhalGo world")
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GXxujpeP-1597137118856)(http://i.imgur.com/RNj3Fc1.png)]
如果需要返回自定的 msg 内容需要使用 SetMsg 方法 例子如下:
Response.SetMsg("成功")
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6lx3pyt-1597137118858)(http://i.imgur.com/zlshvac.png)]
注意 : 使用 RetSuccess 函数时 code 默认为 1 , msg 默认为""
当我们处理程序异常的时候 , 我们会建立一个异常返回 , RetError 需要接受两个参数一个是 error 会把报错信息填充到 msg 中 , 另外一个是 返回的code 例子如下:
return Response.RetError(errors.New("No Name"), -1)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wIbbSN7e-1597137118860)(http://i.imgur.com/KI5Z1IN.png)]
当然你如果要返回一些 Data 内容 , 也只需要使用 SetData :
Response.SetData(map[string]string{"name" : "喵咪"})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rIGUa120-1597137118861)(http://i.imgur.com/Fl22Yjc.png)]
PhalGo 当然也提供了灵活结果返回方法 RetCustomize 接受三个参数 , 分别是 code data msg 开发者可以按照自己的需求返回自己想要的内容 , 例子如下:
return Response.RetCustomize(201, map[string]string{"name":"喵咪"}, "成功")
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bLaAgFMU-1597137118862)(http://i.imgur.com/ouLezwV.png)]
当然大家也有自己要求的返回格式 PhalGo 并不约束你需要使用 code,data,msg 这类格式 , PhalGo 提供了 Ret 方法接受一个结构类型进行返回 , 开发者可以按照约定的格式自行返回想要的内容 , 例子如下:
return Response.Ret(map[string]string{"name":"喵咪"})
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U5fH6HYA-1597137118864)(http://i.imgur.com/AS5gvs1.png)]
最简单粗暴的就是直接打印内容给到用户 , Write 接受一个 []byte 类型 , Write 默认是无格式的 , 例子如下:
Response.Write([]byte("Debug:test Write"))
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VtMwleGW-1597137118870)(http://i.imgur.com/Um6QaPB.png)]
http 请求的一个重要内容就是 Status 码 , PhalGo 可以通过 SetStatus 方法来设置 , 例子如下:
Response.SetStatus(404)
此时返回的 Status 码会是404
PhalGo 在支持 Json 的情况下同时也支持 XML 返回格式 , 只需要通过 SetRetType 方法进行设置 , 例子如下:
phalgo.SetRetType(phalgo.RETMXL)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R1YOFC1P-1597137118871)(http://i.imgur.com/Y5Aki23.png)]
这里有一个注意的情况了 , 此设置在 API 中设置影响范围只是此 API , 如需影响全局需要在 Main 中进行设置
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
集结各类场景实战经验,助你开发运维畅行无忧