Я знаю, что вы можете установить server.contextPath
в application.properties
для изменения корневого контекста.
Кроме того, я могу добавить дополнительный контекст в конфигурацию приложения для Spring Boot, как в следующем примере (в Groovy), чтобы добавить "/api" к сопоставлениям URL-адреса корневого контекста:
@Bean
ServletRegistrationBean dispatcherServlet() {
ServletRegistrationBean reg = new ServletRegistrationBean(new DispatcherServlet(), "/")
reg.name = "dispatcherServlet"
reg.addInitParameter("contextConfigLocation", "")
reg.addUrlMappings("/api/*")
reg.loadOnStartup = 2
reg
}
}
Я пытаюсь создать отдельный базовый URI "/api" специально для вызовов веб-сервисов, которые я могу использовать для обеспечения безопасности и т.д. Однако использование вышеуказанного подхода будет означать, что любой из моих URI, веб-службы или нет, может быть достигнуто с помощью "/" или "/api" и не обеспечивает конкретной сегрегации.
Кто-нибудь знает лучший подход для установки базового пути для всех @RestController
(s) с использованием конфигурации, без необходимости формально префикс каждого контроллера с помощью /api/? Если я вынужден вручную префикс URI для каждого контроллера, можно было бы ошибочно опустить это и обойти мои меры безопасности, специфичные для веб-служб.
Вот ссылка в Qaru на тот же тип вопроса, на который никогда не отвечали полностью: