Spring Boot Basics - Introduction To Spring Data Rest


Spring Data project provides common abstractions to integrate with different kinds of data stores. Spring Data Rest is part of the umbrella of Spring Data projects. It makes it easy to build hypermedia-driven REST web services, on top of Spring Data repositories.

You will learn

  • What is Spring Data Rest?
  • How does Spring Data Rest make building REST API easier?
  • How to integration Spring Data Rest with Spring Data JPA?
  • What are important features of Spring Data Rest?
  • How to execute REST API created using Spring Data Rest?

What Does Spring Data Rest Do?

It does all of the following:

  • Exposes REST services around the Spring Data, without having to write a lot of code.
  • Supports both SQL-based and No SQL-based databases.
  • Supports Pagination
  • Enables Filtering
  • Allows for Sorting
  • Supports HATEOAS

Why Spring Data Rest

Spring Data Rest is ideal for simple projects, that quickly want to get started with creating REST API.

Let’s look at a quick example of using Spring Data Rest to build a REST API.

Generate your project

The easiest way to bring such projects up, would be to use the Spring Initializr:

image info

Note that we have included the dependencies such as Web, JPA and Rest Repositories.You can generate the project, and then import it as a maven project into Eclipse IDE.

Create Entity

Once you have the project imported into eclipse, lets create a JPA Entity - Todo:

image info

@Entity Todo has an Id, and has a few fields and methods.

Create RepositoryRestResource

Once you have an entity, you can create a RepositoryRestResource for it.


	@RepositoryRestResource(collectionResourceRel="todos", path="todos")
	public interface TodoRepository 
					extends PagingAndSortingRepository<Todo, Long> {
		List<Todo> findByUser(@Param("user") String user);
	}
	

Testing REST API

Once you have the Entity and RepositoryRestResource, you are ready to fire your requests.

For example, you can send a POST request to a URL to create a resource:

image info

You can see that the link of the created resource is returned to you.

Another thing you can do is go to the URL and see what resources are currently stored there: image info

You can also access a specific todo stored in the repository: image info

You can do a search on the repository by typing in a query such as: https://localhost:8080/todos?user="Jill"

You can also do a search by directly invoking the repository method: https://localhost:8080/search/findByUser?user="Jill"

When to use Spring Data Rest?

Remember to use Spring Data Rest only for simple projects. It is great to use when you are building a prototype for your application. However, when it comes to production applications, you need to think twice before using Spring Data Rest.

Do check out our video on the same topic:

image info

Summary

In this article, we had a look at Spring Data Rest, which is a framework used to build REST services around Spring Data repositories. It is ideal to use with simple applications or prototypes.

Related Posts

Spring Boot Tutorials for Beginners

At in28Minutes, we are creating a number of tutorials with videos, articles & courses on Spring Boot for Beginners and Experienced Developers. This resources will help you learn and gain expertise at Spring Boot.

Microservices Architectures - What is Fault Tolerance?

In this article, we discuss an important property of microservices, called fault tolerance

Microservices Architectures - Introduction to Auto Scaling

In this article, we focus our attention on the Dynamic Scaling or Auto Scaling. Why do we need applications that can auto scale?

Microservices Architectures - Importance of Centralized Logging

In this article, we explore the concept of centralized logging, in the context of microservices.

Microservices Architectures - Introduction to API Gateway

In this article, we look at what an API Gateway is, in the context of microservices.

Microservices Architectures - Centralized Configuration and Config Server

In this article, we explore the concept of centralized configuration, in the context of microservices.

Microservices Architectures - What is Service Discovery?

In this article, we talk about Service Discovery. Why is Service Discovery important in microservices architecture, and how to set it up for your application.

Microservices Architectures - Advantages Of Microservices

Microservices architectures are very popular today. In this article, we discuss the three main advantages of having a microservices architecture.

Microservice Architectures - Challenges with building Microservices

Microservices architectures are very popular today. In this article, we discuss the important challenges in developing a microservices architecture.

Microservices Architectures - Microservices vs SOA

Microservices architectures are very popular today. In this article, we take a look at how microservices architectures are different from Service Oriented Architectures (SOA).