问题描述
我有一个 MemberController,它有两个 GetMappings,一个返回成员的分页列表,另一个返回一个成员。我有一个 MemberModelAssembler,它覆盖 toModel 并返回一个 selfRel() 链接。如何让 MemberModelAssembler 中的 toModel 方法返回每个成员的分页链接?鉴于我无法将 Pageable 和 PagedResourcesAssembler 传递给 MemberModelAssembler?
调用 api/v1/member/1 时的预期结果
{
"id": 1,"phone": "85298890006","profileImageUrl": null,"displayedname": "Mak","salutation": "MS","_links": {
"self": {
"href": "http://localhost:8080/api/v1/member/1"
}
*****Want to achieve this*****
"members": {
"href": "http://localhost:8080/api/v1/memberpage=0&size=20"
*****Want to achieve this*****
}
}
我的会员控制器:
@RestController
@RequestMapping("api/v1/member")
class MemberController(
private val service: MemberService,private val assembler: MemberModelAssembler
) {
@GetMapping
fun findAll(
pageable: Pageable,pagedResourcesAssembler: PagedResourcesAssembler<Member>
): ResponseEntity<PagedModel<EntityModel<Member>>> {
val members = service.findAll(pageable)
return ResponseEntity(pagedResourcesAssembler.toModel(members,assembler),HttpStatus.OK)
}
@GetMapping("/{id}")
fun findById(@PathVariable id: Int): ResponseEntity<EntityModel<Member>> {
val member = service.findById(id) ?: throw ItemNotFoundException(this::class.simpleName!!,id)
return ResponseEntity(assembler.toModel(member),HttpStatus.OK)
}
}
我的 MemberModelAssembler
@Component
class MemberModelAssembler : RepresentationModelAssembler<Member,EntityModel<Member>> {
override fun toModel(member: Member) =
EntityModel.of(
member,linkTo(methodon(MemberController::class.java).findById(member.id)).withSelfRel(),)
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)