如何更改 yii2 高级 API 响应的键标签
How to change keys lable of yii2 advanced API response
我已经在我的 yii2 高级应用程序中创建了 API 模块,还在控制器文件中添加了 HttpBearerAuth
,它正在运行。
在未经授权时,我收到以下回复:
{"name":"Unauthorized","message":"Your request was made with invalid credentials.","code":0,"status":401,"type":"yii\web\UnauthorizedHttpException"}
我想像下面这样更改此响应的键标签:
{"error":"Unauthorized","errorMessage":"Your request was made with invalid credentials.","code":0,"status":401}
如何更新这些密钥?
将事件处理程序附加到 yii\web\Response::EVENT_BEFORE_SEND 并检查 yii\web\Response class 的 $data 属性。不确定,但我猜你会找到一个数组,其中的键正是你想要更改的键。
您只需要过滤掉您想要处理的响应(例如,除了状态代码 200 和 201 之外的所有响应)。
可能是这样的...可能包含错误:-)
Event::on(yii\web\Response::className(), yii\web\Response::EVENT_BEFORE_SEND, function ($event) {
if (Yii::$app->response->getStatusCode() > 201) {
if (isset(Yii::$app->response->data['name']) {
Yii::$app->response->data['error'] = Yii::$app->response->data['name'];
unset(Yii::$app->response->data['name']);
}
}
});
我已经在我的 yii2 高级应用程序中创建了 API 模块,还在控制器文件中添加了 HttpBearerAuth
,它正在运行。
在未经授权时,我收到以下回复:
{"name":"Unauthorized","message":"Your request was made with invalid credentials.","code":0,"status":401,"type":"yii\web\UnauthorizedHttpException"}
我想像下面这样更改此响应的键标签:
{"error":"Unauthorized","errorMessage":"Your request was made with invalid credentials.","code":0,"status":401}
如何更新这些密钥?
将事件处理程序附加到 yii\web\Response::EVENT_BEFORE_SEND 并检查 yii\web\Response class 的 $data 属性。不确定,但我猜你会找到一个数组,其中的键正是你想要更改的键。 您只需要过滤掉您想要处理的响应(例如,除了状态代码 200 和 201 之外的所有响应)。
可能是这样的...可能包含错误:-)
Event::on(yii\web\Response::className(), yii\web\Response::EVENT_BEFORE_SEND, function ($event) {
if (Yii::$app->response->getStatusCode() > 201) {
if (isset(Yii::$app->response->data['name']) {
Yii::$app->response->data['error'] = Yii::$app->response->data['name'];
unset(Yii::$app->response->data['name']);
}
}
});