【发布时间】:2017-01-13 20:11:20
【问题描述】:
我创建了一个 springboot 应用程序,该应用程序在 .../api/myEndpoints... 中包含一些 Rest API 端点,以及一些用户可以与之交互的 UI 表单的 thymeleaf 模板。
由于我添加了一个errorController:
@Controller
@RequestMapping("/error")
public class ErrorController {
@RequestMapping(method = RequestMethod.GET)
public String index(Model model) {
return "error";
}
}
每当在我的 RestControllers 中引发异常时,我都会收到一个包含“错误”一词的空白网站。这可能对 web 前端有意义,但对我的 api 没有意义。对于 API,我希望 spring 输出标准 JSON 结果,例如:
{
"timestamp": 1473148776095,
"status": 400,
"error": "Bad request",
"exception": "java.lang.IllegalArgumentException",
"message": "A required parameter is missing (IllegalArgumentException)",
"path": "/api/greet"
}
当我从 ErrorController 中删除 index 方法时,我总是会收到 JSON 输出。 我的问题是:是否有可能仅针对所有 api url (../api/*) 排除对 /error 的自动重定向?
非常感谢。
【问题讨论】:
标签: spring spring-boot exception-handling