Spring-Data-REST轻松搞定RESTfulAPI

背景

昨天同事问我有没有研究过 ,没有~但是看名字就大概知道是做什么的(命名的重要性),因为之前有了解过 ,过一会发过两个截图过来。真的很强大,感觉这个在使用RESTful风格接口协议的微服务时都不用写Controller了。

什么是Spring Data REST

Spring Data REST是基于Spring Data的Repository,把 Repository 自动输出为REST资源,目前支持Spring Data JPA、Spring Data MongoDB、Spring Data Neo4j、Spring Data GemFire、Spring Data Cassandra的 Repository 自动转换成REST服务。注意是自动。Spring Data REST把我们需要编写的大量REST模版接口做了自动化实现。

两行代码即可实现

在网上大概了解一下,然后动手做个demo,果然是两行代码即可实现。

新建一个Spring Boot项目,添加依赖

表结构

放点数据进去,如下图:

与表对应的实体

创建User表对应的Repository

自定了一个接口UserRepository 继承了JpaRepository,其中泛型中的User是实体类,Long是主键类型,在类的头部加上了一个 @RepositoryRestResource注解,并添加了一个Path为user。就这样,两行代码即可实现User实体类的RESTFul风格的所有接口。

测试,访问

接口中自动附带查询详情的链接

分页测试,

接口中同样自动附带分页的链接,分页信息

这样更便于解耦前后端,后端如果链接地址变了,前端不用改,直接用Link里面的地址访问

同样,也提供了一个类似swagger的接口测试UI

问题:

现在还不知道自动转换成REST服务有哪些缺点?

自动转换成REST服务,是否支持自定义功能?

还需要进一步测试与Feign一起使用的情况。

......

本文来自企鹅号 - 我的技术杂货铺媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏栗霖积跬步之旅

关于打包后提示无法连接到mongodb的情况

昨天晚上要和前端联调。 打完jar包后发现无法连接到测试环境的数据库。 就很尴尬,最后发现问题在于mongodb的URI写错了: 正确的URI格式:mongod...

3765
来自专栏杂烩

分布式服务框架之Dubbo整合Spring项目(一)

        先说一下架构,项目采用Maven管理依赖,总共三个项目,一个是接口包common-inter,一个是服务提供者provider,最后一个是服务消...

1681
来自专栏QQ音乐技术团队的专栏

Android Studio 2.2 Native 开发新特性

在本文所述新特性之外,参考资料中还提供了利用向导工具创建具有 Native 支持的 Android 新项目的方法。由于这个新特性比较明显,本文未做详述。

3620
来自专栏玩转JavaEE

使用Spring Cloud搭建服务注册中心

我们在之前的博客中已经介绍过阿里的分布式服务框架dubbo【Linux上安装Zookeeper以及一些注意事项】【一个简单的案例带你入门Dubbo分布式框架】,...

2.1K4
来自专栏加米谷大数据

Flume的高可靠,高性能和高扩展性

Flume 是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。 Flume使用JRuby来构建,所以依赖Java运行环境。

1032
来自专栏Java学习网

Spring 3.0支持基于rest的Web服务学习总结

尽管RESTful功能被添加到Spring MVC框架非常早期通过注释和其他API功能,支持基于rest的Web服务是Spring MVC有点晚。几个jax -...

23510
来自专栏开发与安全

linux网络编程之进程间通信基础(一):进程间通信概述

一、顺序程序与并发程序特征 顺序程序特征 顺序性 封闭性:(运行环境的封闭性) 确定性 可再现性 并发程序特征 共享性 并发性 随机性 二、进程互斥 ...

1800
来自专栏Danny的专栏

【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1473
来自专栏散尽浮华

Centos7下部署两套python版本并存环境的操作记录

需求说明: centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的正常运行...

2906
来自专栏EAWorld

详解Spring Boot 自动配置机制

一、简介 Spring boot 是一个基于 Spring框架开发,高于 Spring 框架,它对 Spring 做了更好的封装,提供了更多的产品级特性,极大的...

3556

扫码关注云+社区

领取腾讯云代金券