Spring Boot: настройка префикса url для RestControllers
Я не эксперт по весне, и будучи черным ящиком, что это, было трудно понять вещи самостоятельно, даже с документацией весны. Иногда я просто понятия не имею, что я ищу, чтобы начать поиск...
в моем приложении Spring Boot я пытаюсь выяснить, как настроить уникальный префикс url для всех моих RestControllers.
все, что мне действительно нужно, - это чтобы мой статический контент обслуживался из корневого контекста,"/", но мои конечные точки RestController доступны из другого контекста, скажем " / api/*".
Я знаю, как изменить контекст по умолчанию приложения через приложение.недвижимость, но это не совсем то, что мне нужно. Я показываю свое невежество здесь, когда дело доходит до сервлетов, отображений и т. д., Поскольку я говорю, что пытаюсь получить два разных контекста для двух разных типов контента.
2 ответов
Я думаю, что это действительный момент, хотя обычно его разделяют как два (или более приложений). Предположим, вы хотите обработать (1) веб-сайт, обслуживающий HTML/CSS/JS и (2) API REST. Поверх ваших контроллеров вы определяете "контекст", используя @RequestMapping
(вы не можете иметь два, поэтому они будут в разных контроллерах, опять же, в зависимости от того, что вы пытаетесь достичь):
@RequestMapping(/web)
@RequestMapping(/api/v1)
...а потом внутри эти контроллеры в методах вы можете назначить "остальную часть URL", снова используя @RequestMapping(value = "/index", method = RequestMethod.GET)
.
например /web/index
, /web/error
; а также: /api/v1/something
, /api/v1/something-else
.
имея хороший пакет конвенции поможет вам не заблудиться с таким количеством контроллеры.
Примечание: помните, что вам не нужно повторять один и тот же контекст в каждом отдельном методе, а просто "остальная часть URL".
Я не знаю, помогает ли это, я только что опубликовал решение, которое я тестирую в другом потоке:
как настроить префикс URI @RestController по умолчанию для всех контроллеров?