I'm in the process of switching from the RESTler API framework to Silex. Part of the challenge is making sure the responses from our API does not change since we have apps in production that depend on it. Currently the out-of-the-box Silex 2.0 is intercepting our JSON error handler and replacing it with this:
What I need as a response is:
{
"error": {
"code": 400,
"message": "This API key is not authorized to complete the operation"
}
}
I've found snippets of solutions but they are mostly out of date or I could not get them to work with Silex 2.0.
I could easily do
if (!$controllerResponseData) {
$error = array('message' => 'This API key is not authorized to complete the operation');
return $app->json($error, 400);
}
However this would have to be done at the routes level, forcing me to rewrite all of my controllers. They don't manage errors, those are handled much deeper at the business logic and model layers.
Is their anyway to override the default error handling in Silex? Also, what would be most ideal is having the error handling as it is for debugging but easily switch to JSON error responses in production or for local testing.