Spring中统一相同版本的api请求路径的一些思考

Spring中统一相同版本的api请求路径的一些思考

问题场景

当我们在实际开发中,可能会遇到开发相同同版本的api

假设相同版本的api请求路径为/v1/functionA,/v1/functionB

因为按照业务进行了划分,这两个对外暴露的api分别在两个不同的Controller

因此可能存在以下代码

@Controller
@RequestMapping("/v1")
public class FunctionControllerA{
    @RequestMapping("/functionA")
    public void functionA(){
        //Some thing to do...
    }
}

@Controller
@RequestMapping("/v1")
public class FunctionControllerB{
    @RequestMapping("/functionB")
    public void functionB(){
         //Some thing to do...
    }
}

可以看到我们在类上声明了@RequestMapping("/v1")这个注解,当然也可以在方法上声明如@RequestMapping("/v1/functionA")

如果这样的Controller不多可能还好,但如果存在很多个这样的情况,或者突然有一天上面突然让更换/v1/...开头的api地址改为/v1.0/..这样,是不是得更改很多个地方。

那么有没有版本统一一个地方,达到修改一次即可

解决方案

声明一个统一api请求路径接口

@RequestMapping("/v1")
public interface VersionPathAware{}

上述两个地址可改写为以下形式

@Controller
public class FunctionControllerA implements VersionPathAware {
    @RequestMapping("/functionA")
    public void functionA(){
        //Some thing to do...
    }
}

@Controller
public class FunctionControllerB implements VersionPathAware {
    @RequestMapping("/functionB")
    public void functionB(){
        //Some thing to do...
    }
}

api请求路径为/v1/functionA,/v1/functionB

并且如果版本名需要更换只需更改一个地方即可。

当然这种方法是一种约定,实际开发中也可直接使用第一种方式

转载于:https://www.cnblogs.com/xcmelody/p/11074763.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值