PhalGo-Respones

喵了个咪_ · · 1162 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

PhalGo-Respones

在处理请求 Api 请求中 , 除了对 Request 之外最重要的就是 Response 了 , PhalGo 支持两种格式的参数返回一种是 Josn 一种是 XML , 在 PhalGo 中默认使用JSON进行返回 , 可以在入口文件进行全局返回参数配置或在摸个接口内部指定此接口返回的参数类型

Response初始化

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

我们最常用的就是成功返回 , RetSuccess接受一个接口类型的参数 , 此参数会填充到 data 中 , 例子如下:

return Response.RetSuccess("hello " + name + " Welcome to PhalGo world")

如果需要返回自定的 msg 内容需要使用 SetMsg 方法 例子如下:

Response.SetMsg("成功")

注意 : 使用 RetSuccess 函数时 code 默认为 1 , msg 默认为""

RetError

当我们处理程序异常的时候 , 我们会建立一个异常返回 , RetError 需要接受两个参数一个是 error 会把报错信息填充到 msg 中 , 另外一个是 返回的code 例子如下:

return Response.RetError(errors.New("No Name"), -1)

当然你如果要返回一些 Data 内容 , 也只需要使用 SetData :

Response.SetData(map[string]string{"name" : "喵咪"})

RetCustomize

PhalGo 当然也提供了灵活结果返回方法 RetCustomize 接受三个参数 , 分别是 code data msg 开发者可以按照自己的需求返回自己想要的内容 , 例子如下:

return Response.RetCustomize(201, map[string]string{"name":"喵咪"}, "成功")

Ret

当然大家也有自己要求的返回格式 PhalGo 并不约束你需要使用 code,data,msg 这类格式 , PhalGo 提供了 Ret 方法接受一个结构类型进行返回 , 开发者可以按照约定的格式自行返回想要的内容 , 例子如下:

return Response.Ret(map[string]string{"name":"喵咪"})

Write

最简单粗暴的就是直接打印内容给到用户 , Write 接受一个 []byte 类型 , Write 默认是无格式的 , 例子如下:

Response.Write([]byte("Debug:test Write"))

SetStatus

http 请求的一个重要内容就是 Status 码 , PhalGo 可以通过 SetStatus 方法来设置 , 例子如下:

Response.SetStatus(404)

此时返回的 Status 码会是404

XML

PhalGo 在支持 Json 的情况下同时也支持 XML 返回格式 , 只需要通过 SetRetType 方法进行设置 , 例子如下:

phalgo.SetRetType(phalgo.RETMXL)

这里有一个注意的情况了 , 此设置在 API 中设置影响范围只是此 API , 如需影响全局需要在 Main 中进行设置


有疑问加站长微信联系(非本文作者)

本文来自:云栖社区

感谢作者:喵了个咪_

查看原文:PhalGo-Respones

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1162 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传