Spring Data REST

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.

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.

Features

  • 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
  • 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

Latest News

 

Resources

Getting Started Reference Documentation
Issue Tracking https://jira.springframework.org/browse/DATAREST
Source Control https://github.com/SpringSource/spring-data-rest
Source Code Browsing https://fisheye.springsource.org/browse/datarest
CI Build http://build.springsource.org/browse/SPRINGDATA-DATAWEB

 

Maven Artifacts

Here is the Spring Milestone Repository:

<repository>
 <id>spring-milestone</id>
 <name>Spring Maven MILESTONE Repository</name>
 <url>http://repo.springsource.org/libs-milestone</url>
</repository>

Here is the dependency:

<dependency>
 <groupId>org.springframework.data</groupId>
 <artifactId>spring-data-rest-webmvc</artifactId>
 <version>1.1.0.M1</version>
</dependency> 

 

Maven Snapshot Repository
<repository>
 <id>spring-snapshot</id>
 <name>Spring Maven SNAPSHOT Repository</name>
 <url>http://repo.springsource.org/libs-snapshot</url>
</repository>
Maven Snapshot Dependency
<dependency>
 <groupId>org.springframework.data</groupId>
 <artifactId>spring-data-rest-webmvc</artifactId>
 <version>1.1.1.BUILD-SNAPSHOT</version>
</dependency> 

 

Spring Data

Spring Data makes it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services as well as provide improved support for relational database technologies.

Spring Data is an umbrella open source project which contains many subprojects that are specific to a given database. The projects are developed by working together with many of the companies and developers that are behind these exciting technologies.

Now available from O'Reilly Media is the book:

Spring Data: Modern Data Access for Enterprise Java.

 Spring Data

Spring Data Projects:

Category Sub-project  
Relational Databases JPA Spring Data JPA - Simplifies the development of creating a JPA-based data access layer
  JDBC Extensions Support for Oracle RAC, Advanced Queuing, and Advanced datatypes. Support for using QueryDSL with JdbcTemplate.
     
Big Data Apache Hadoop The Apache Hadoop project is an open-source implementation of frameworks for reliable, scalable, distributed computing and data storage.
     
Data-Grid GemFire VMware vFabric GemFire is a distributed data management platform providing dynamic scalability, high performance, and database-like persistence. It blends advanced techniques like replication, partitioning, data-aware routing, and continuous querying.
     
HTTP REST Spring Data REST - Perform CRUD operations of your persistence model using HTTP and Spring Data Repositories.
     
Key Value Stores Redis Redis is an open source, advanced key-value store.
     
Document Stores MongoDB MongoDB is a scalable, high-performance, open source, document-oriented database.
     
Graph Databases Neo4j Neo4j is a graph database, a fully transactional database that stores data structured as graphs.
     
Column Stores HBase Apache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable. HBase functionality is part of the Spring for Apache Hadoop project.
     
Common Infrastructure Commons Provides shared infrastructure for use across various data access projects. General support for cross-database persistence is located here
     

Community-driven projects:

Sub-project  
Spring Data Solr Spring Data repositories abstraction for Apache Solr
Spring Data Elasticsearch Spring Data repositories abstraction for Elasticsearch
Spring Data Couchbase Spring Data repositories abstraction for Couchbase
Spring Data FuzzyDB Spring Data repositories abstraction for FuzzyDB

Attic

The Attic contains links to Spring Data projects that are no longer maintained.

Participation

Please reach out on the forums or JIRA with specific questions,requests, and expressing interest to participate in development on github at http://github.com/SpringSource.

Twitter

Follow SpringData on Twitter: SpringData

Follow the team members on Twitter

 

 

Syndicate content