Kri*_*ish 5 rest spring web-services spring-mvc
在我的 Spring 控制器中,我有 2 个 REST API 方法。示例: getUser、getRole 一个客户端通过“/api/v1”等方式访问它。现在我想更新其中一种方法。即,获取角色。所以新的方法/版本将是“/api/v2”。但v1的方法没有改变。即“/api/v1”。
如何处理同一项目中两个版本的其余方法?我的意思是,getUser Rest API 应该支持“/api/v1”和“/api/v2”。getRole REST API 应该支持两个版本但功能不同(例如:数据库更改、逻辑更改)。简单来说,1. getUser 将有 1 个支持两个版本的方法。2. getRole 每个版本都有 2 个方法。
请在这里帮助我。
如果您想对两个版本使用单独的方法,您可以通过在中定义不同的值@RequestMapping
@RequestMapping(
value = "baseurl/v1/role",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
and
@RequestMapping(
value = "baseurl/v2/role",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
Run Code Online (Sandbox Code Playgroud)
但如果你想用同样的方法处理它,你可以使用
@RequestMapping(
value = "baseurl/{version}/role",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public returnType methodName(@PathVariable("version") String version){
// code to check version
}
Run Code Online (Sandbox Code Playgroud)
@RequestMapping(
value = "baseurl/role",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public returnType methodName(@RequestHeader("version") String version){
// code to check version
}
Run Code Online (Sandbox Code Playgroud)
但正如你所说,你有不同版本的 api,更喜欢在@RequestMapping类级别使用单独的控制器来管理它们
@RestController
@RequestMapping("/v1")
public class anyController {
}
and
@RestController
@RequestMapping("/v2")
public class anyController {
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6662 次 |
| 最近记录: |