用 @ApiVersion 注解给 API 增加版本号

通常我们设计 REST 接口时会要求在 API 上增加版本号,以方便在接口升级时保证一定的兼容性。我们假定设计的接口入下:

1
GET /api/v1/user/{userId}

在 Spring MVC 中可以这样这样实现:

1
2
3
4
5
@GetMapping(value = "/api/v1/user/{userId}")
public ResponseEntity<?> getUser(@PathVariable(value = "userId") String userId) {
return WebResponse.create(userService.getUser(userId))
.ok();
}

GetMapping 注解中手动指定了接口版本,但每个接口都指定或指定在类上也是非常不方便的,我们希望有一个注解来简化的约束这个配置的过程