首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring data rest --有没有办法限制支持的操作?

Spring data rest --有没有办法限制支持的操作?
EN

Stack Overflow用户
提问于 2017-02-28 18:43:11
回答 2查看 13.9K关注 0票数 20

我想在Spring(SpringBoot)应用程序中将数据库中的数据公开为Restful API。Spring Data Rest似乎非常适合这项活动。

对于我的应用程序需求,此数据库是只读的。默认设置提供了所有HTTP方法。有没有可以用来限制(实际上是防止)其他方法被暴露的配置?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-01 02:31:13

来自Hiding repository CRUD methods上的Spring文档

16.2.3。隐藏存储库CRUD方法

如果不想在CrudRepository上公开保存或删除方法,可以使用@RestResource(exported = false)设置,方法是覆盖要关闭的方法,并将注释放在覆盖的版本上。例如,为了防止HTTP用户调用CrudRepository的delete方法,可以覆盖所有这些方法,并向覆盖的方法添加注释。

@RepositoryRestResource(path = "people",rel = "people")接口PersonRepository扩展CrudRepository { @Override @RestResource(exported = false) void delete(Long id);@Override @RestResource(exported = false) void delete(Person entity);}

覆盖这两个delete方法很重要,因为导出器当前使用一种有点幼稚的算法来确定使用哪种CRUD方法,以提高运行时性能。目前还不能关闭delete的版本,它接受一个ID,但保留导出的接受实体实例的版本。目前,您可以导出或不导出delete方法。如果您想关闭它们,请记住,您必须使用exported =false注释这两个版本。

票数 35
EN

Stack Overflow用户

发布于 2018-03-07 02:23:36

截至2018年初,现在有了ability to only expose repository methods explicitly declared for exposure (DATAREST-1176)

请参阅RepositoryRestConfiguration

Export false at Type level does not allow overriding with export true at Method level票证(DATAREST-1034)已打开,但已作为DATAREST-1176的副本关闭。奥利弗·吉尔克说:

DATAREST-1176现在我会解决这个问题,但是如果你还有其他需要的话,可以随时重新打开

它们不是完全相同的副本,1034中描述的功能将更加用户友好,但至少现在有一些选择。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42506546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档