在處理請求 Api 請求中 , 除了對 Request 之外最重要的就是 Response 了 , PhalGo 支持兩種格式的參數(shù)返回一種是 Josn 一種是 XML , 在 PhalGo 中默認使用JSON進行返回 , 可以在入口文件進行全局返回參數(shù)配置或在摸個接口內(nèi)部指定此接口返回的參數(shù)類型
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 為請求的狀態(tài)碼 , data 是具體返回的數(shù)據(jù) , msg 是返回內(nèi)容的描述例如"成功" , "失敗"
我們最常用的就是成功返回 , RetSuccess接受一個接口類型的參數(shù) , 此參數(shù)會填充到 data 中 , 例子如下:
return Response.RetSuccess("hello " + name + " Welcome to PhalGo world")
如果需要返回自定的 msg 內(nèi)容需要使用 SetMsg 方法 例子如下:
Response.SetMsg("成功")
注意 : 使用 RetSuccess 函數(shù)時 code 默認為 1 , msg 默認為""
當我們處理程序異常的時候 , 我們會建立一個異常返回 , RetError 需要接受兩個參數(shù)一個是 error 會把報錯信息填充到 msg 中 , 另外一個是 返回的code 例子如下:
return Response.RetError(errors.New("No Name"), -1)
當然你如果要返回一些 Data 內(nèi)容 , 也只需要使用 SetData :
Response.SetData(map[string]string{"name" : "喵咪"})
PhalGo 當然也提供了靈活結(jié)果返回方法 RetCustomize 接受三個參數(shù) , 分別是 code data msg 開發(fā)者可以按照自己的需求返回自己想要的內(nèi)容 , 例子如下:
return Response.RetCustomize(201, map[string]string{"name":"喵咪"}, "成功")
當然大家也有自己要求的返回格式 PhalGo 并不約束你需要使用 code,data,msg 這類格式 , PhalGo 提供了 Ret 方法接受一個結(jié)構(gòu)類型進行返回 , 開發(fā)者可以按照約定的格式自行返回想要的內(nèi)容 , 例子如下:
return Response.Ret(map[string]string{"name":"喵咪"})
最簡單粗暴的就是直接打印內(nèi)容給到用戶 , Write 接受一個 []byte 類型 , Write 默認是無格式的 , 例子如下:
Response.Write([]byte("Debug:test Write"))
http 請求的一個重要內(nèi)容就是 Status 碼 , PhalGo 可以通過 SetStatus 方法來設置 , 例子如下:
Response.SetStatus(404)
此時返回的 Status 碼會是404
PhalGo 在支持 Json 的情況下同時也支持 XML 返回格式 , 只需要通過 SetRetType 方法進行設置 , 例子如下:
phalgo.SetRetType(phalgo.RETMXL)
這里有一個注意的情況了 , 此設置在 API 中設置影響范圍只是此 API , 如需影響全局需要在 Main 中進行設置
更多建議: