0
我有一個控制器,它看起來是這樣的:如何在API列表中添加@RepositoryRestController方法?
@RepositoryRestController
public class PersonOmnisearchController {
@Autowired
private PersonRepository personRepository;
@ResponseBody
@RequestMapping(value = "/persons/search/personOmnisearch", method = RequestMethod.GET)
public ResponseEntity<?> personOmnisearch(@RequestParam("search") String search, PersistentEntityResourceAssembler assembler) {
Person p = personRepository.findOne(Long.valueOf(search));
if (p == null) {
p = personRepository.findBySsn(search);
}
if (p == null) {
throw new ResourceNotFoundException();
}
return ResponseEntity.ok(assembler.toResource(p));
}
}
它的偉大工程,但使用Traverson時獲取數據,還有在/api/persons/search
的_links
部分沒有personOmnisearch
鏈接。我如何讓Spring Data REST知道我的控制器將它放入api中,以便它可以在不需要知道直接URL的情況下導航?
這裏是我的Traverson代碼的情況下,它可以幫助:
api.json()
.follow('$._links.persons.href', '$._links.search.href', 'omniSearch')
.withTemplateParameters({
search: search
})
.getResource()
附: - 我不確定這是一個Spring Data REST還是HATEOAS問題,所以我都標記了兩個。隨意刪除無關的任何一個。