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 中进行设置