如何检索实体的JHipster API上的所有实例

时间:2015-05-14 06:12:33

标签: angularjs spring-boot jhipster

在使用paginator时调用生成的api时,有什么方法可以调用生成的REST-api来检索对象的所有实例,只有前20,30,40等等?

我发现因为我在实体创建和管理中使用分页,当我想在其他视图中使用这些实体(自己创建)时,API在调用{{1}时不会提供所有实例在angular / js。

这是对JHipster的限制,还是我可以用任何其他方式调用REST-API来提供丢弃分页器的信息?

2 个答案:

答案 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);
    }
}