【发布时间】:2015-02-24 09:44:32
【问题描述】:
我正在使用 Laravel 构建 RESTful API。我的 API 总是返回 JSON。我想做的是将响应逻辑保留在一个地方。这是我现在在 API 控制器中执行此操作的方法,Route::controller() 指向它。有趣和超有用的例子来了:
public function getDouble($number) {
try {
if (!is_numeric($number)) {
throw new HttpException(400, 'Invalid number.');
}
$response = $number * 2;
$status = 200;
}
catch (HttpException $exception) {
$response = $exception->getMessage();
$status = $exception->getStatusCode();
}
return response()->json($response, $status);
}
在此示例中,我的 API 路由将是例如 /double/13 通过 GET 方法访问。问题是我在每个方法中重复这个 try ... catch 块。我希望我的 API 方法是这样的:
public function getDouble($number) {
if (!is_numeric($number)) {
throw new HttpException(400, 'Invalid number.');
}
return $number;
}
然后,捕获这些异常并在另一个地方形成 JSON。就良好的应用程序架构而言,这里最好的方法是什么?
【问题讨论】:
标签: php rest http laravel laravel-5