我有一个端点控制器,我想在那里发出一个GET请求并返回数据。如果没有找到数据,我想返回空内容或什么都没有。我试过这个:
private Service listsService;
@RequestMapping(method = {RequestMethod.GET}, path = {"id/{id}"})
public ResponseEntity<Object> find(@PathVariable String id) {
LookupResponse lookupResponse = listsService.findById(id);
return new ResponseEntity<>(lookupResponse, HttpStatus.OK);
}
.................
@Override
public LookupResponse findById(String id) {
Optional<Lists> list = ListsRepository.findById(id);
if(list.isPresent())
{
Lists lists = binList.get();
LookupResponse response = LookupResponse.builder()
.countryCode(lists.getCountry())
.category(lists.getType())
.build())
.build();
return response;
}
return null;
}
如果在数据库中找不到记录,从端点返回no content status
的正确方法应该是什么?
1条答案
按热度按时间ipakzgxi1#
您可以通过以下方式使用可选API:
然后使用
@ControllerAdvice
注解创建ResponseEntityExceptionHandler: