SpringBootRest忽略一个类
我正在使用SpringBootStarter数据REST开发RESTAPI。我想与JPA同步的一个类是User类,它包含关于用户的信息,包括允许谁访问API 不幸的是,拥有用户和UserRepository意味着我的用户类在API中公开。我能够删除Id(在configureRepositoryRestConfiguration函数中)、用户名和密码(通过向我的用户类的每个变量添加@JsonIgnore) 不幸的是,API的用户仍然可以请求用户表(返回一个包含空用户的列表)。虽然这不是一个真正的问题,但我宁愿删除/users端点 无法将@JsonIgnore添加到整个用户类中 有这样的事情 您可以使用所需字段定义接口,并将其用作存储库的方法:SpringBootRest忽略一个类,spring,spring-boot,jackson,spring-data-jpa,spring-data-rest,Spring,Spring Boot,Jackson,Spring Data Jpa,Spring Data Rest,我正在使用SpringBootStarter数据REST开发RESTAPI。我想与JPA同步的一个类是User类,它包含关于用户的信息,包括允许谁访问API 不幸的是,拥有用户和UserRepository意味着我的用户类在API中公开。我能够删除Id(在configureRepositoryRestConfiguration函数中)、用户名和密码(通过向我的用户类的每个变量添加@JsonIgnore) 不幸的是,API的用户仍然可以请求用户表(返回一个包含空用户的列表)。虽然这不是一个真正的问
@Projection(name = "simpleUser", types = { User.class })
interface SimpleUser {
String getFirstName();
String getLastName();
}
有这样的事情
您可以使用所需字段定义接口,并将其用作存储库的方法:
@Projection(name = "simpleUser", types = { User.class })
interface SimpleUser {
String getFirstName();
String getLastName();
}
通过将此注释添加到存储库中,可以隐藏某些存储库:
@RepositoryRestResource(exported=false)
此处的更多信息:您可以通过将此注释添加到存储库来隐藏某些存储库:
@RepositoryRestResource(exported=false)
此处的更多信息:导出存储库取决于。默认策略是: 公开所有公共存储库接口,但考虑@(存储库)RestResource的
导出
标志
根据禁用“回购”的导出,您可以为此回购设置exported
标志为false
:
@RepositoryRestResource(exported = false)
public interface UserRepo extends JpaRepository<User, Integer> {
//...
}
然后不要将@RepositoryRestResource
注释应用于不需要导出的repos
更新
我们还可以使用此应用程序属性设置策略:
spring.data.rest.detection-strategy=default
导出存储库取决于。默认策略是: 公开所有公共存储库接口,但考虑@(存储库)RestResource的
导出
标志
根据禁用“回购”的导出,您可以为此回购设置exported
标志为false
:
@RepositoryRestResource(exported = false)
public interface UserRepo extends JpaRepository<User, Integer> {
//...
}
然后不要将@RepositoryRestResource
注释应用于不需要导出的repos
更新
我们还可以使用此应用程序属性设置策略:
spring.data.rest.detection-strategy=default
如果您只是从存储库接口中删除@RepositoryRestResource怎么办?从未定义过@RepositoryRestResource,我定义过公共接口UserRepository extends Crudepository{如果您只是从repository接口中删除@RepositoryRestResource怎么办?从未定义过@RepositoryRestResource,我确实定义了公共接口UserRepository extends Crudepository{但这就是spring data rest的重点。它的目的是为您的存储库公开一个restful API,因此没有DTO。有关更多信息,请参阅@systemfreund哦,对不起,我没有注意到spring data Part,但这就是spring data rest的重点。它的目的是为您的存储库公开一个restful API,因此我这意味着没有DTO。有关更多信息,请参阅@systemfreund哦,对不起,我没有注意到spring数据部分