【问题标题】:How to version my API with Spring MVC?如何使用 Spring MVC 对我的 API 进行版本控制?
【发布时间】:2015-04-22 16:01:12
【问题描述】:

目前,我的 API 的 URL 为:

/api/users

使用 Spring MVC:

@RequestMapping("/api/users")

我想对这个 api 进行版本控制:

/api-v1.0/users

最好能够在@RequestMapping 注释中使用SpEL,但it is unfortunately not possible

@RequestMapping("/api-#{appProps['version']}/users")

那么还有哪些选择呢?

【问题讨论】:

  • 1.很难编码。 2. 预处理你的代码(例如 ant-replace/maven-filter...) 3. 扩展 DefaultAnnotationHandlerMapping(但不要破坏它:)
  • @sp00m 所以你想从属性文件中加载版本?
  • @minion 这将是最好的。

标签: java spring api spring-mvc version


【解决方案1】:

试试@RequestMapping("/api-${version}/users")

请参阅http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-placeholders 了解更多信息。

【讨论】:

    【解决方案2】:

    @RequestMapping 从属性占位符值解析。所以定义一个如下所示的 PropertySourcesPlaceHolderConfigurer。

    <context:property-placeholder location="classpath*:*.properties"/>
    

    然后使用如下语法。

    @RequestMapping("/api-${version}/users")
    

    【讨论】:

      猜你喜欢
      • 2016-03-12
      • 2021-01-02
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 2016-12-23
      • 2017-09-21
      • 2011-02-07
      • 1970-01-01
      相关资源
      最近更新 更多