1
目前是否有任何方法來捕獲傳入的請求和響應,並記錄它?我發現有'preCall'和'postCall'方法,但是,我的一些API方法並沒有嚴格按照HTTP動詞命名。使用Restler3,如何記錄請求/響應
例如,在我的'Players'類中,我有'get'方法返回給定player_id的一個玩家,'getPlayers'返回所有玩家。
目前是否有任何方法來捕獲傳入的請求和響應,並記錄它?我發現有'preCall'和'postCall'方法,但是,我的一些API方法並沒有嚴格按照HTTP動詞命名。使用Restler3,如何記錄請求/響應
例如,在我的'Players'類中,我有'get'方法返回給定player_id的一個玩家,'getPlayers'返回所有玩家。
當然有!
下面是一些代碼,我從一些其它的問題SO拼湊起來:
$r->onComplete(function() use ($r) {
// Don't log Luracast Restler Explorer recources calls
if (! preg_match('/resources/', $r->url)) {
$success = $r->responseCode == 200;
$request = $r->getRequestData();
$info = array(
'base' => $r->getBaseUrl(),
'method' => $r->requestMethod,
'url' => $r->url,
'api_key' => NULL,
'route' => $r->apiMethodInfo->className.'::'.$r->apiMethodInfo->methodName,
'data' => $request['request_data'],
'ip' => User::getIpAddress(),
'referer' => (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER']: ''),
'http_status_code' => $r->responseCode,
'response' => $success ? '' : $r->exception->getErrorMessage()
);
print_r($info); // replace with your logging function here
}
});