Spring Data REST
Tips
- Spring HATEOAS 文档
- 单个 Item 会使用 E-Tag 做缓存
@Component
public class SpringDataRestCustomization extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.withEntityLookup().
// 修改 URL 路径上的 ID 属性
forRepository(UserRepository.class, User::getUsername, UserRepository::findByUsername);
}
}
NOTES
ExcerptProjection
- 片段映射
- 只针对集合有效
- 添加额外字段
RepositoryRestConfigurer
- Spring Data WebMVC 的配置接口
RepositoryEntityController
- WebMVC 入口
- RestMediaTypes
application/hal+json
application/x-spring-data-compact+json
text/uri-list
application/json-patch+json
application/merge-patch+json
application/alps+json
application/schema+json
application/x-spring-data-verbose+json
BackendIdConverter
- 配置 URL 上 id 生成方式
@BackendId
可用于注解该配置
ResourceAssembler
- 用于构建资源
PersistentEntityResourceAssembler
: ResourceAssembler<Object, PersistentEntityResource>- 将任意对象转换为
PersistentEntityResource
- 将任意对象转换为
PersistentEntityJackson2Module
- PersistentEntityResource 序列化模块
AssociationOmittingSerializerModifier
- 将关联字段移除
- 不能改动态修改, 因为序列化器构建成功后会缓存
HATEOAS
Resources
- 表示一组资源内容
ResourceProcessor<T extends ResourceSupport>
- 资源预处理接口
ResourceProcessorInvoker
- 统一调用方法