在ThinkPHP API框架中,处理接口错误码的方法如下:
在应用目录的common
文件夹下创建一个名为error_code.php
的文件,用于存储错误码和对应的错误信息。例如:
<?php
return [
'00000' => '成功',
'10001' => '参数错误',
'10002' => '用户不存在',
'10003' => '密码错误',
// 其他错误码...
];
在应用目录的controller
文件夹下创建一个名为BaseController.php
的文件,用于存放所有API接口的基类。在这个文件中,我们可以定义一个response
方法,用于返回接口的响应数据。例如:
<?php
namespace app\controller;
use think\Controller;
use think\facade\Request;
class BaseController extends Controller
{
public function response($data = [], $code = 0, $msg = '')
{
$result = [
'code' => $code,
'msg' => $msg,
'data' => $data,
];
return json($result, 200);
}
}
在所有的API接口控制器中,继承BaseController
类,并在需要返回错误码的地方调用response
方法。例如:
<?php
namespace app\controller;
use think\Controller;
use app\common\error_code;
class UserController extends BaseController
{
public function login()
{
$username = Request::param('username');
$password = Request::param('password');
// 验证参数
if (!$username || !$password) {
return $this->response([], 10001, '参数错误');
}
// 验证用户名和密码
$user = model('User')->find($username);
if (!$user || $user['password'] != $password) {
return $this->response([], 10002, '用户不存在或密码错误');
}
// 登录成功
return $this->response(['token' => $user['token']], 0, '登录成功');
}
}
在application
目录下的route
文件夹中,找到route.php
文件,注册全局异常处理函数。例如:
<?php
use think\facade\Route;
use app\common\error_code;
Route::get('api/:action', 'api/:1');
Route::error(function ($request, $status) {
switch ($status) {
case 404:
return $request->response([
'code' => 404,
'msg' => '未找到资源',
], 404);
case 500:
return $request->response([
'code' => 500,
'msg' => '服务器内部错误',
], 500);
default:
return $request->response([
'code' => $status,
'msg' => error_code::$status,
], $status);
}
});
这样,当接口出现错误时,系统会自动返回对应的错误码和错误信息。开发者可以根据需要自定义错误处理逻辑。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。