Dan*_*iel 5 spring-hateoas spring-data-commons
我在我的REST控制器中使用了spring-data-common的PagedResourcesAssembler,我很高兴看到它甚至在响应中生成了下一个/上一个链接.但是,在我有其他查询参数(除了页面,大小,排序)的情况下,这些参数不包含在生成的链接中.我能以某种方式配置汇编程序以包含链接中的参数吗?
非常感谢,丹尼尔
小智 7
您需要自己构建基本链接并将其传递给PagedResourcesAssembler的"toResource"方法.
@Controller
@RequestMapping(value = "/offer")
public class OfferController {
private final OfferService offerService;
private final OfferAssembler offerAssembler;
@Autowired
public OfferController(final OfferService offerService, OfferAssembler offerAssembler) {
this.offerService= checkNotNull(offerService);
this.offerAssembler= checkNotNull(offerAssembler);
}
@RequestMapping(value = "/search/findById", method = RequestMethod.GET, produces = { MediaType.APPLICATION_JSON_VALUE })
public ResponseEntity<PagedResources<OfferResource>> findOfferById(
@RequestParam(value = "offerId") long offerId, Pageable pageable,
PagedResourcesAssembler<OfferDetails> pagedResourcesAssembler) {
Page<OfferDetails> page = service.findById(offerId, pageable);
Link link = linkTo(methodOn(OfferController.class).findOfferById(offerId,
pageable,
pagedResourcesAssembler)).withSelfRel();
PagedResources<OfferResource> resource = pagedResourcesAssembler.toResource(page, assembler, link);
return new ResponseEntity<>(resource, HttpStatus.OK);
}
}
Run Code Online (Sandbox Code Playgroud)
结果你会得到:
http://[your host]/[your app context]/offer/search/findById?offerId=[some offer id]{&page,size,sort}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2799 次 |
| 最近记录: |