Spring Data REST

简化在 Spring Data 资源库之上构建超媒体驱动的 REST 网络服务的过程。『Simplifies building hypermedia-driven REST web services on top of Spring Data repositories』

Github stars Tracking Chart

The goal of the project is to provide a flexible and configurable
mechanism for writing simple services that can be exposed over HTTP.

This takes your Spring Data repositories and front-ends them with HTTP,
allowing you full CRUD capability over your entities, to include
managing associations.

Features

Code of Conduct

This project is governed by the Spring Code of
Conduct
.
By participating, you are expected to uphold this code of conduct.
Please report unacceptable behavior to
spring-code-of-conduct@pivotal.io.

Getting Started

Here is a quick teaser of an application using Spring Data REST in Java:

@CrossOrigin
@RepositoryRestResource(path = "people")
public interface PersonRepository extends CrudRepository<Person, Long> {

  List<Person> findByLastname(String lastname);

  @RestResource(path = "byFirstname")
  List<Person> findByFirstnameLike(String firstname);
}

@Configuration
@EnableMongoRepositories
class ApplicationConfig extends AbstractMongoConfiguration {

  @Override
  public MongoClient mongoClient() {
    return new MongoClient();
  }

  @Override
  protected String getDatabaseName() {
    return "springdata";
  }
}

curl -v "http://localhost:8080/people/search/byFirstname?firstname=Oliver*&sort=name,desc"

Maven configuration

Add the Maven dependency:

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-rest</artifactId>
  <version>${version}.RELEASE</version>
</dependency>

If you’d rather like the latest snapshots of the upcoming major version,
use our Maven snapshot repository and declare the appropriate dependency
version.

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-rest</artifactId>
  <version>${version}-SNAPSHOT</version>
</dependency>

<repository>
  <id>spring-snapshot</id>
  <name>Spring Snapshot Repository</name>
  <url>https://repo.spring.io/snapshot</url>
</repository>

Getting Help

Having trouble with Spring Data? We’d love to help!

Reporting Issues

Spring Data uses GitHub as issue tracking system to record bugs and
feature requests. If you want to raise an issue, please follow the
recommendations below:

  • Before you log a bug, please search the issue
    tracker

    to see if someone has already reported the problem.

  • If the issue doesn’t already exist, create a new
    issue
    .

  • Please provide as much information as possible with the issue
    report, we like to know the version of Spring Data that you are
    using and JVM version.

  • If you need to paste code, or include a stack trace use GitHub’s
    flavor of Markdown and wrap your code with triple-backquotes.

  • If possible try to create a test-case or project that replicates the
    issue. Attach a link to your code or a compressed file containing
    your code.

Building from Source

You don’t need to build from source to use Spring Data (binaries in
repo.spring.io), but if you want to try out
the latest and greatest, Spring Data can be easily built with the maven
wrapper
. You also need JDK 17.

 $ ./mvnw clean install

If you want to build with the regular mvn command, you will need
Maven v3.5.0 or above.

Also see CONTRIBUTING.adoc if you wish to submit
pull requests, and in particular please sign the Contributor’s
Agreement
before your first
non-trivial change.

Building reference documentation

Building the documentation builds also the project without running
tests.

 $ ./mvnw clean install -Pantora

The generated documentation is available from
target/site/reference/html/index.html.

Guides

The spring.io site contains several guides that
show how to use Spring Data step-by-step:

Examples

License

Spring Data REST is Open Source software released under the Apache 2.0
license
.

Main metrics

Overview
Name With Ownerspring-projects/spring-data-rest
Primary LanguageJava
Program languageJava (Language Count: 1)
Platform
License:Apache License 2.0
所有者活动
Created At2012-03-08 21:55:39
Pushed At2025-04-22 12:32:09
Last Commit At2021-04-13 08:45:54
Release Count328
Last Release Name5.0.0-M2 (Posted on 2025-04-22 14:31:46)
First Release Name1.0.0.M1 (Posted on )
用户参与
Stargazers Count0.9k
Watchers Count115
Fork Count560
Commits Count1.8k
Has Issues Enabled
Issues Count2133
Issue Open Count757
Pull Requests Count67
Pull Requests Open Count42
Pull Requests Close Count222
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private