1
컬렉션 개체에 링크를 추가하는 방법 :나는 봄의 데이터 같은 저장소가
@RepositoryRestResource(collectionResourceRel = "items", path = "items")
public interface ItemRepository extends CrudRepository<Item, Long> {
}
내 사용자 정의 저장소 :
@RepositoryRestController
@ExposesResourceFor(Item.class)
@RequestMapping("items")
public class CustomItemController implements ResourceProcessor<RepositoryLinksResource> {
@Autowired
ItemRepository itemRepository;
@GetMapping(value = "/customMethod")
@ResponseBody
public List<String> customMethod() {
//some logic
}
@Override
public RepositoryLinksResource process(RepositoryLinksResource resource) {
resource.add(linkTo(methodOn(CustomItemController.class).customMethod()).withRel("customMethod"));
return resource;
}
}
내가 정의하는 방법에 대한 링크를 가지고 싶습니다을 수집 기관의 수준에
{
_embedded: {
items: [...]
},
_links: {
self: {
href: "https://localhost:8080/api/items"
},
profile: {
href: "https://localhost:8080/api/profile/items"
},
search: {
href: "https://localhost:8080/api/items/search"
},
customMethod: {
href: "https://localhost:8080/api/items/customMethod"
}
}
}
하지만 내 API의 루트 레벨에서 내가 그것을 가지고 위의 솔루션을
. RepositoryLinksResource를 Resource로 변경하면 엔티티 레벨에서 메소드를 갖게됩니다. 어떤 아이디어/단서 그것을 구현하는 방법?
답변 주셔서 감사합니다. 그러나이 솔루션은 PagingAndSortingRepository를 확장하는 리포지토리에서만 작동합니다. 제 경우 CrudRepository를 사용합니다. – Bartek
이 정보는 유용하며 원래 게시물에 추가해야합니다. 어쨌든 이제는 T 타입이'ResourceProcessor''ResourceProcessor >'에 건네 져야한다고 제안합니다 (http://stackoverflow.com/a/24288077/5873923). –