如果不想暴露官方定义好的方法,例如根据 id 删除数据,只需要在自定义接口中重写该方法,然后在该方法上加 @RestResource 注解并且配置相关属性即可。
public interface BookRepository extends JpaRepository<Book, Long> { @RestResource(rel = "byauthor",path = "byauthor") List<Book> findBookByAuthorContaining(@Param("author") String author); @Override @RestResource(exported = false) void deleteById(Long aLong); }另外生成的 JSON 字符串中的集合名和单个 item 的名字都是可以自定义的:
@RepositoryRestResource(collectionResourceRel = "bs",itemResourceRel = "b",path = "bs") public interface BookRepository extends JpaRepository<Book, Long> { @RestResource(rel = "byauthor",path = "byauthor") List<Book> findBookByAuthorContaining(@Param("author") String author); @Override @RestResource(exported = false) void deleteById(Long aLong); }path 属性表示请求路径,请求路径默认是类名首字母小写+s,可以在这里自己重新定义。
其他配置最后,也可以在 application.properties 中配置 REST 基本参数:
spring.data.rest.base-path=http://www.likecs.com/api spring.data.rest.sort-param-name=sort spring.data.rest.page-param-name=page spring.data.rest.limit-param-name=size spring.data.rest.max-page-size=20 spring.data.rest.default-page-size=0 spring.data.rest.return-body-on-update=true spring.data.rest.return-body-on-create=true配置含义,从上往下,依次是:
给所有的接口添加统一的前缀
配置排序参数的 key ,默认是 sort
配置分页查询时页码的 key,默认是 page
配置分页查询时每页查询页数的 key,默认是size
配置每页最大查询记录数,默认是 20 条
分页查询时默认的页码
更新成功时是否返回更新记录
添加成功时是否返回添加记录
总结本文主要向大家介绍了 Spring Boot 中快速实现一个 RESTful 风格的增删改查应用的方案,整体来说还是比较简单的,并不难。相关案例我已上传到 GitHub 上了,小伙伴可以自行下载:https://github.com/lenve/javaboy-code-samples。
关于本文,有问题欢迎留言讨论。
扫码关注松哥,公众号后台回复 2TB,获取松哥独家 超2TB 免费 Java 学习干货