返回带有超薄框架的http 500
如果我的API出了问题,我想返回一个http 500请求。
$app = new Slim();
$app->halt(500);
它仍然返回http 200。
如果我运行此代码:
$status = $app->response()->status();
echo $status; //Here it is 200
$status = $app->response()->status(500);
echo $status; //Here it is 500
它仍然给我一个http 200
解决方案
如果有人仍然在这里遇到这个问题,那就是我最终做了什么:
设置错误处理程序
$app->error(function (Exception $exc) use ($app) {
// custom exception codes used for HTTP status
if ($exc->getCode() !== 0) {
$app->response->setStatus($exc->getCode());
}
$app->response->headers->set('Content-Type', 'application/json');
echo json_encode(["error" => $exc->getMessage()]);
});
然后,无论何时需要返回特定的HTTP状态,都会抛出包含状态代码的异常:
throw new Exception("My custom exception with status code of my choice", 401);
(在Slim论坛上找到的)
相关文章