Доброго дня всем! Столкнулся с проблемой разделения запросов на API сервера и статические ресурсы, а конкретно: index.html. Т.е задача такова: все запросы, к примеру, на:
localhost:8080/administrationPanel/tables/highCategory Должны вернуть index.html. Но если я обращаюсь к API сервера, то это должно выглядеть так:
localhost:8080/api/getHighCategory. Я не устанавливал никаких ViewResolver-ов, потому что отдаю статические ресурсы(хотя, может, тут я и ошибаюсь), в этом же мне помогает
ResourceHandlerRegistry:
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
Но, если я делаю что-то вроде этого:
@RequestMapping(value = "/**", method = RequestMethod.GET)
public String welcome() {
return "index.html";
}
То я не смогу обратиться к своему API, т.к все запросы будут перехватываться. Но если разделение будет такое:
@RequestMapping(value = "/administrationPanel", method = RequestMethod.GET)
public String welcome() {
return "index.html";
}
@RequestMapping(value = "/administrationPanel/**", method = RequestMethod.GET)
public String testWelcome() {
return "index.html";
}
@RequestMapping(value = "/api/highCategory", method = RequestMethod.GET)
public String apiCategory() {
//code
return smth;
}
То при переходе на
/administrationPanel все будет нормально, но если я сделаю запрос на
/administrationPanel/smth, то вернется ошибка
HTTP Status 500 - Circular view path.
Если же вместо
@RequestMapping(value = "/administrationPanel/**"
Я сделаю:
@RequestMapping(value = "/administrationPanel/smth"
То вернется:
HTTP Status 404 - The requested resource is not available.
Хотя, на это может влиять и диспетчер сервлетов:
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
Но я и не знаю как с ним пошаманить.
Как все-таки грамотно разделить запросы?