Spring 数据 REST - 不允许 return 实体但只允许视图(投影)

Spring Data REST - do not allow to return entities but only views (projections)

我的 objective 是为了确保客户端无法通过 Spring 数据 REST 自动公开的 API 直接访问(检索)实体,而只能访问视图(JPA 的这些实体的投影)。

到目前为止,我通过在存储库上使用 @RepositoryRestResource(excerptProjection = CustomerView.class) 注释,仅针对 return 实体集合(例如 findAll() )的 API 实现了它。

如何配置 Spring Data REST 以便它也对检索特定实体的端点执行相同的操作?比如/api/v1/customers/1

如果要将投影应用于特定实体(即项目资源), 设置 uri 模板变量 projection 以构建 url 路径 /api/v1/customers/1?projection=customerView。名称 customerView 是在注释 @Projection 中设置的名称。请参阅文档 https://docs.spring.io/spring-data/rest/docs/current/reference/html/#projections-excerpts.projections

用宏澄清后编辑:
宏想要隐藏一些敏感字段,例如密码。然后应将杰克逊注释 @JsonIgnore 添加到敏感字段以将其隐藏在响应 json.