Spring Boot 中 REST API 的多个端点

har*_*rv3 8 java rest spring spring-boot

我在表中有两个唯一的键:iduserId。如果两个键中的任何一个作为路径变量给出,我必须在 Spring 中创建一个 REST API 来获取用户详细信息。

这里的挑战是我们必须创建两个不同的端点来让用户通过id和 让用户通过userId,但对两者使用相同的方法。我的表中还有idis的数据类型longuserIdis的数据类型String

所以我正在尝试执行以下操作:

@RequestMapping(value = {"/{id}","/user/{id}"}, method=RequestMethod.GET)
public response getUser(@PathVariable("id") String id) {
    
}
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何检查我是否获得了该方法iduserId在该方法内。这也是正确的方法吗?

Dev*_*per 14

您可以使用如下的单一方法来完成此操作:

@RequestMapping(value = {"/{id}", "/user/{userId}"}, method = RequestMethod.GET)
public void getUser(@PathVariable(value = "id", required = false) String id,
  @PathVariable(value = "userId", required = false) Long userId) {
    if (id != null) {
    //TODO stuff for id
   }
   if (userId != null) {
    //TODO stuff for userId
   }
Run Code Online (Sandbox Code Playgroud)

}