我有一个带有 REST Controller 的 Spring MVC 应用程序,它用作 JavaScript、基于 Angular 的前端应用程序的后端。有时需要向前端返回资源的相对URL。
问题是:相对URL应该从什么开始?
假设绝对URL为http://host:port/context-path/servlet-path/service/id ,我看到以下选项:
- 上下文路径:/context-path/servlet-path/service/id
- servlet 路径:/servlet-path/service/id
- 仅请求映射:/service/id
前端应用程序与后端部署在同一个 Web 应用程序中,但位于不同的目录中,例如http://host:port/context-path/gui-app/ 。
最佳答案
由于单页 Web 应用程序(例如基于 Angular 的应用程序)仅通过 REST 之类的 API 与后端进行通信,并且除了 REST API 的 URL 之外不知道任何其他信息,因此您需要将上下文路径变量存储在前端中.
这可以存储在 JSON 配置文件或由所有 Angular JS Controller 共享的全局 Javascript 文件中。
对后端的一个建议是使用 api/<version>
REST Controller 名称之前的前缀,这将更容易区分 REST API 和其他 URL。
http://host:port/context-path/api/v1/servlet-path/service/id
关于java - Spring MVC 应用程序中相对 URL 的正确基础是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079113/