@@ -54,6 +54,12 @@ class Api
54
54
*/
55
55
protected $ auth = null ;
56
56
57
+ /**
58
+ * 默认响应输出类型,支持json/xml
59
+ * @var string
60
+ */
61
+ protected $ responseType = 'json ' ;
62
+
57
63
/**
58
64
* 构造方法
59
65
* @access public
@@ -145,7 +151,7 @@ protected function loadlang($name)
145
151
* @param string $type 输出类型
146
152
* @param array $header 发送的 Header 信息
147
153
*/
148
- protected function success ($ msg = '' , $ data = null , $ code = 1 , $ type = ' json ' , array $ header = [])
154
+ protected function success ($ msg = '' , $ data = null , $ code = 1 , $ type = null , array $ header = [])
149
155
{
150
156
$ this ->result ($ msg , $ data , $ code , $ type , $ header );
151
157
}
@@ -158,7 +164,7 @@ protected function success($msg = '', $data = null, $code = 1, $type = 'json', a
158
164
* @param string $type 输出类型
159
165
* @param array $header 发送的 Header 信息
160
166
*/
161
- protected function error ($ msg = '' , $ data = null , $ code = 0 , $ type = ' json ' , array $ header = [])
167
+ protected function error ($ msg = '' , $ data = null , $ code = 0 , $ type = null , array $ header = [])
162
168
{
163
169
$ this ->result ($ msg , $ data , $ code , $ type , $ header );
164
170
}
@@ -168,32 +174,34 @@ protected function error($msg = '', $data = null, $code = 0, $type = 'json', arr
168
174
* @access protected
169
175
* @param mixed $msg 提示信息
170
176
* @param mixed $data 要返回的数据
171
- * @param int $code 返回的 code
172
- * @param string $type 返回数据格式
177
+ * @param int $code 错误码,默认为0
178
+ * @param string $type 输出类型,支持json/xml/jsonp
173
179
* @param array $header 发送的 Header 信息
174
180
* @return void
175
181
* @throws HttpResponseException
176
182
*/
177
- protected function result ($ msg , $ data = null , $ code = 0 , $ type = ' json ' , array $ header = [])
183
+ protected function result ($ msg , $ data = null , $ code = 0 , $ type = null , array $ header = [])
178
184
{
179
185
$ result = [
180
186
'code ' => $ code ,
181
187
'msg ' => $ msg ,
182
188
'time ' => Request::instance ()->server ('REQUEST_TIME ' ),
183
189
'data ' => $ data ,
184
190
];
185
- $ type = $ type ?: $ this ->getResponseType ();
191
+ // 如果未设置类型则自动判断
192
+ $ type = $ type ? $ type : ($ this ->request ->param (config ('var_jsonp_handler ' )) ? 'jsonp ' : $ this ->responseType );
193
+
186
194
if (isset ($ header ['statuscode ' ]))
187
195
{
188
196
$ code = $ header ['statuscode ' ];
189
197
unset($ header ['statuscode ' ]);
190
198
}
191
199
else
192
200
{
193
- $ code = $ code >= 1000 ? 200 : $ code ;
201
+ //未设置状态码,根据code值判断
202
+ $ code = $ code >= 1000 || $ code < 200 ? 200 : $ code ;
194
203
}
195
204
$ response = Response::create ($ result , $ type , $ code )->header ($ header );
196
-
197
205
throw new HttpResponseException ($ response );
198
206
}
199
207
0 commit comments