小编典典

Spring Boot:为RestControllers配置url前缀

spring-boot

我不是Spring专家,但作为黑匣子,即使凭Spring的文档,也很难凭我自己来解决问题。有时候,我只是不知道要寻找什么才能开始搜索…

在我的Spring Boot应用程序中,我试图弄清楚如何为我所有的RestControllers配置唯一的url前缀。

我真正要做的只是从根上下文“ /”提供我的静态内容,但让我的RestController端点从另一个上下文(例如“ / api / *”)访问。

我知道如何通过application.properties更改应用程序的默认上下文,但这不是我想要的。我在这里表示对servlet,映射等的无知,就像我说的那样,我试图为两种不同类型的内容获取两种不同的上下文。


阅读 1448

收藏
2020-05-30

共1个答案

小编典典

我认为这是有道理的,尽管将其分为两个(或多个)应用程序是很常见的。假设您要处理(1)提供HTML / CSS / JS的网站和(2)REST
API。在控制器的顶部,您@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的其余部分”。

2020-05-30