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更改为资源,我将在实体级别上使用该方法。任何想法/线索如何实现它?
感谢您的回答,但此解决方案仅适用于扩展PagingAndSortingRepository的存储库,在我使用CrudRepository的情况下。 – Bartek
这个信息很有用,你应该把它添加到你原来的文章中。无论如何,现在这一切都归结为找到T类型传递给'ResourceProcessor'也许'ResourceProcessor >'建议[这里](http://stackoverflow.com/a/24288077/5873923)。 –