我已经创建了一个自定义的休息控制器,我可以访问API并从资源中获取结果,问题是,它没有出现在HAL浏览器中.如何在HAL浏览器中公开这个自定义方法?谢谢…
@RepositoryRestController
public class RevisionController {
protected static final Logger LOG = LoggerFactory
.getLogger(RevisionController.class);
private final disciplineRepository repository;
Functiondiscipline>,discipline> functiondiscipline = new Functiondiscipline>() {
@Override
public discipline apply(Revisiondiscipline> input) {
return (discipline) input.getEntity();
}
};
@Inject
public RevisionController(disciplineRepository repository) {
this.repository = repository;
}
@RequestMapping(method = RequestMethod.GET,value = "/disciplines/search/{id}/revisions")
public @ResponseBody ResponseEntity> getRevisions(
@PathVariable("id") Integer id) {
Revisionsdiscipline> revisions = repository.findRevisions(id);
List<discipline> disciplines = Lists.transform(revisions.getContent(),functiondiscipline);
Resources<discipline> resources = new Resources<discipline>(disciplines);
resources.add(linkTo(
methodon(RevisionController.class).getRevisions(id))
.withSelfRel());
return ResponseEntity.ok(resources);
}
}
最佳答案
注册实现ResourceProcessor< RepositoryLinksResource>的bean.并且您可以将自定义控制器的链接添加到根资源,HAL浏览器将会看到它.
public class RootResourceProcessor implements ResourceProcessorodon(RevisionController.class).getRevisions(null)).withRel("revisions"));
return resource;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。