我有两个基于Spring启动,REST和MVC的Web服务。第一个服务(DesignService)项目调用第二个服务(UserService)项目,将电子邮件作为参数传递并获取用户对象(User.java)。如果找不到用户,我该如何处理。
DesignService项目
repository.java
@Autowired
RestTemplate restTemplate;
getUser(String email){
restTemplate.postForObject("url for User service",email,User.class); //calls User service for Object[1]
}
UserService
UserController.java
@RequestMapping()
public ResponseEntity<User> getUser(@RequestBody String email){
User user = repository.getUser(email); //return a user object from DB
return new ResponseEntity<User>(user);[2]
}
Repository.java
public User getUser(String email){
//query db for user
return user; //what to return if no user is found [3]
}
*如果我在某些语法中出错,因为我直接输入了它。
答案 0 :(得分:0)
返回null,或者如果您使用的是Java 8,则返回空的Optional
如果未找到任何用户,请返回一个空的响应,其状态为404(NOT_FOUND),即
新的ResponseEntity(HttpStatus.NOT_FOUND);
最后,为什么要POST到只返回资源的端点?你应该做一个GET,从它的外观来看,你的请求映射应该只支持GET(method = RequestMethod.GET)。