Introduction To Spring Data Rest - Quick Tutorial for Beginners


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.

Congratulations! You are reading an article from a series of 50+ articles on Spring, Spring Boot , Hibernate, Full Stack, Cloud and Microservices. We also have 20+ projects on our Github repository. For the complete series of 50+ articles and code examples, click here.

Join 300,000 Learners!

Learn Spring Boot in 10 Steps - FREE Course

Next Steps

Image

Image

Image Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

Image

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.

Spring and Spring Boot Video Tutorials for Beginners

At in28Minutes, we are creating a number of tutorials with videos, articles & courses on Spring Boot for Beginners and Experienced Developers. Here's a list of video tutorials and courses for you

Software Design - Separation Of Concerns - with examples

Software architects and programmers love having Seperation of Concerns. What is it? Why is it important? Let's get started.

Object Oriented Software Design - Solid Principles - with examples

Software design is typically complex. Object oriented design takes it to the next level. There are a number of design patterns and other stuff to be aware of. Can we make things simple? What are the goals to aim for when you are doing object oriented design? SOLID Principles is a great starting point for Object Oriented Design.

Software Design - Open Closed Principle - with examples

Open Closed Principle is one of the SOLID Principles. You want your code to be easily extended. How do you achieve it with minimum fuss? Let's get started.

Software Design - What is Dependency Inversion Principle?

Dependency Inversion Principle is one of the important SOLID Principles. Dependency Inversion Principle is implemented by one of the most popular Java frameworks - Spring. What is it all about? How does it help you design good applications?

Introduction to Four Principles Of Simple Design

With agile and extreme programming, the focus is on keeping your design simple. How do you keep your design simple? How do you decide whether your code is good enough?

Software Design - Single Responsibility Principle - with examples

For me, Single Responsibility Principle is the most important design principle. What is Single Responsibility Principle? How do you use it? How does it help with making your software better? Let's get started.

REST API Best Practices - With Design Examples from Java and Spring Web Services

Designing Great REST API is important to have great microservices. How do you design your REST API? What are the best practices?

Designing REST API - What is Code First Approach?

Designing Great REST API is important to have great microservices. Code First approach focuses on generating the contract from code. Is it the best possible approach?