Springboot简单API与http请求不匹配

问题描述 投票:0回答:1

我在春季启动时有这个非常简单的API,

@RestController
@RequestMapping(value = "/users")
public class UserController {

@Autowired
private IUserRepository userRepository;


@PostMapping()
public UserModel createUser(@RequestBody UserModel user){
    return userRepository.save(user);
}

@GetMapping()
public List<UserModel> getUsers(){
    return userRepository.findAll();
}

@GetMapping(value = "{id}")
public Optional<UserModel> getUserById(@RequestParam("id") String id) {
    return userRepository.findById(id);
}

@GetMapping(value="/searchByName/{name}")
public List<UserModel> requestMethodName(@RequestParam("name") String name) {
    return userRepository.findByName(name);
}

}

当我运行时,它可以很好地编译并且不会引发错误,但是当我发出get请求时,它与请求不匹配,如下所示:

[当我这样做:“ http://localhost:2202/users”时,我会获得所有没有问题的用户列表,

但是当我呼叫:“ http://localhost:2202/users?id=5e6f5b4d19d83c38af6c648d”时,我仍然获得所有用户的列表。当我在控制器的“ getUserById”操作中放置一个断点时,该断点将永远不会命中。

[另外,当我呼叫:“ http://localhost:2202/users/searchByName?name=Runtebala”时,我收到一个400错误的请求。

这让我发疯,有人解决方案吗?请

java spring-boot rest
1个回答
0
投票

尝试像这样更新POST和GET:

@PostMapping("/")
public UserModel createUser(@RequestBody UserModel user){
    return userRepository.save(user);
}


@GetMapping("/")
public List<UserModel> getUsers(){
    return userRepository.findAll();
}

© www.soinside.com 2019 - 2024. All rights reserved.