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

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

What is an In Memory Database?

In this article, we understand what the term "In-Memory Database" actually means. We see what scenarios they can be used, and why they are important.

What is an Embedded Server?

In this article, we focus in exploring what an embedded server is, and how they help make application deployment simpler.

Java Tools and Frameworks - Introduction To Maven

In this article, we experience a brief introduction to Maven, and will see how it helps in managing your project dependencies.

Five Tools To Learn as a Java Developer

In this article, we introduce you to five great tools that we recommend every Java Developer to learn.

Five Languages To Learn as a Java Programmer

As a programmer, you want to explore new things. Learning a new language gives you a different perspective when solving problems. What are the 5 languages that a Java developer should explore?

Five Great Frameworks To Try for Java Programmers

As a programmer you want to explore new languages and frameworks. What would be the best frameworks to explore in 2019 for Java Programmers?

Unit Testing Best Practices - with Java and Junit Examples

Unit Testing is often underrated. As far as I am concerned, having good unit tests seperates good projects from bad. In this article, let's look at unit testing best practices in depth. We use examples from Java and JUnit to illustrate the concepts. However, the best practices are applicable irrespective of the programming language used.

Programming Basics - Unit Testing - What Is Mocking?

Mocking is an important concept that is made use of, when writing unit tests. In this article, we explore what mocking is all about, and explore some of the popular Java mocking frameworks in use.