微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Data Rest:如何在HAL浏览器中公开自定义rest控制器方法

我已经创建了一个自定义的休息控制器,我可以访问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 ResponseEntitydiscipline> 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] 举报,一经查实,本站将立刻删除。

相关推荐