我正在从RESTler API框架切换到Silex。部分挑战是确保我们API的响应不会发生变化,因为我们的生产中的应用程序依赖于它。目前开箱即用的Silex 2.0正在拦截我们的JSON错误处理程序并将其替换为:
作为回应我需要的是:
/target
我找到了解决方案的片段,但它们大部分都已过时,或者我无法让它们与Silex 2.0一起使用。
我可以轻松做到
{
"error": {
"code": 400,
"message": "This API key is not authorized to complete the operation"
}
}
然而,这必须在路由级别完成,迫使我重写所有控制器。它们不管理错误,在业务逻辑层和模型层处理错误。
他们无论如何要覆盖Silex中的默认错误处理?此外,最理想的是具有错误处理,因为它用于调试,但很容易在生产或本地测试中切换到JSON错误响应。
答案 0 :(得分:0)
使用构造尝试捕获。例如:
try{
// your code
} catch(\Namespace\RestException $e) {
$error = array('message' => 'This API key is not authorized to complete the operation');
return $app->json($error, 400);
}