在使用paginator时调用生成的api时,有什么方法可以调用生成的REST-api来检索对象的所有实例,只有前20,30,40等等?
我发现因为我在实体创建和管理中使用分页,当我想在其他视图中使用这些实体(自己创建)时,API在调用{{1}时不会提供所有实例在angular / js。
这是对JHipster的限制,还是我可以用任何其他方式调用REST-API来提供丢弃分页器的信息?
答案 0 :(得分:2)
您可以修改该实体的现有休息控制器。以下是Center
实体的示例。
如果没有偏移和限制值,我会返回所有中心。
@RequestMapping(value = "/centers",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public ResponseEntity<List<Center>> getAll(@RequestParam(value = "page" , required = false) Integer offset,
@RequestParam(value = "per_page", required = false) Integer limit)
throws URISyntaxException {
if(offset == null && limit == null) {
return new ResponseEntity<List<Center>>(centerRepository.findAll(), HttpStatus.OK);
} else {
Page<Center> page = centerRepository.findAll(PaginationUtil.generatePageRequest(offset, limit));
HttpHeaders headers = PaginationUtil.generatePaginationHttpHeaders(page, "/api/centers", offset, limit);
return new ResponseEntity<List<Center>>(page.getContent(), headers, HttpStatus.OK);
}
}
然后在角度方面,你只需要在没有参数的情况下调用Center.query();
。
答案 1 :(得分:0)
这是一个古老的问题,但对于任何寻求简单解决方案的人来说。您需要覆盖默认的PageableHandlerMethodArgumnetResolver bean:
@Configuration
public class CustomWebConfigurer implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
resolver.setFallbackPageable(Pageable.unpaged());
argumentResolvers.add(resolver);
}
}