Spring Data REST

Spring Data REST is part of the umbrella Spring Data project that makes it easy to expose JPA based repositories as RESTful endpoints.

Quick Start
Fork me on GitHub

The goal of the Spring Data REST project is to provide a solid foundation on which to expose CRUD operations to your JPA Repository-managed entities using plain HTTP REST semantics. The first implementation of this exporter uses Spring MVC and the standard Servlet architecture to make it easy to deploy a WAR file that becomes a full-blown CRUD application simply by including your domain classes and their corresponding Repository definitions. Future implementations will allow you to export your repositories in non-Servlet HTTP environments using high-throughput non-blocking IO, and will provide enhanced HTML5 capabilities.


  • Supports JPA, MongoDB, Gemfire, and Neo4J Repositories
  • Create new entities (auto-generated or pre-assigned IDs are both supported) using POST
  • Update existing entities using PUT and PATCH
  • Delete entities using DELETE
  • Manage entity relationships using POST, PUT, DELETE
  • Discover services and get or list available entities using GET
  • Search entities through Repository query methods using GET
  • Validate entities with JSR-303 or Spring Validator beans
  • Extend the REST exporter's functionality by capturing ApplicationEvents
  • Configure path and rel values using annotations or DSL config helper
  • Page large results sets
  • Sort results
  • Use metadata (ALPS) to discover transitions and other details about the service
  • Projection alternate views of data and pick excerpt options to make certain ops more efficient

Quick Start


The recommended way to get started using spring-data-rest in your project is with a dependency management system – the snippet below can be copied and pasted into your build. Need help? See our getting started guides on building with Maven and Gradle.