入門
Spring Data REST 自体が Spring MVC アプリケーションであり、既存の Spring MVC アプリケーションと簡単に統合できるように設計されています。サービスの既存 (または将来) のレイヤーは、わずかな追加作業のみで Spring Data REST と並行して実行できます。
Spring Data REST を Spring Boot プロジェクトに追加する
Spring Boot には Spring Data REST のスターターがあり、自動構成を使用しているため、開始する最も簡単な方法は Spring Boot アプリケーションを構築することです。次の例は、Gradle を使用して Spring Data Rest を Spring Boot プロジェクトに含める方法を示しています。
dependencies {
...
compile("org.springframework.boot:spring-boot-starter-data-rest")
...
}
次の例は、Maven を使用して Spring Data Rest を Spring Boot プロジェクトに含める方法を示しています。
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
...
</dependencies>
Spring Boot Gradle プラグインまたは Spring Boot Maven プラグインを使用する場合は、バージョン番号を指定する必要はありません。 |
Spring Boot を使用すると、Spring Data REST は自動的に構成されます。
Spring Data REST を Gradle プロジェクトに追加する
Spring Data REST を Gradle ベースのプロジェクトに追加するには、次のように、コンパイル時の依存関係に spring-data-rest-webmvc
アーティファクトを追加します。
dependencies {
… other project dependencies
compile("org.springframework.data:spring-data-rest-webmvc:4.4.0")
}
Spring Data REST を Maven プロジェクトに追加する
Spring Data REST を Maven ベースのプロジェクトに追加するには、次のように、コンパイル時の依存関係に spring-data-rest-webmvc
アーティファクトを追加します。
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-webmvc</artifactId>
<version>4.4.0</version>
</dependency>
Spring Data REST の構成
既存の Spring MVC アプリケーションと一緒に Spring Data REST をインストールするには、適切な MVC 構成を含める必要があります。Spring Data REST 構成は RepositoryRestMvcConfiguration
というクラスで定義されており、そのクラスをアプリケーションの構成にインポートできます。
Spring Boot の自動構成を使用する場合、この手順は不要です。Spring Boot は、spring-boot-starter-data-rest を含めると自動的に Spring Data REST を有効にし、依存関係のリストでアプリに @SpringBootApplication または @EnableAutoConfiguration のフラグが設定されます。 |
構成をカスタマイズするには、RepositoryRestConfigurer
を登録し、ユースケースに関連する configure …
メソッドを実装またはオーバーライドします。
使用するストアの Spring Data リポジトリも構成してください。詳細については、対応する Spring Data モジュールのリファレンスドキュメントを参照してください。
Spring Data REST の基本設定
このセクションでは、Spring Data REST アプリケーションを構成するときに操作できる次のような基本設定について説明します。
リポジトリ検出戦略の設定
Spring Data REST は RepositoryDetectionStrategy
を使用して、リポジトリが REST リソースとしてエクスポートされるかどうかを判断します。RepositoryDiscoveryStrategies
列挙には、次の値が含まれます。
名前 | 説明 |
| すべてのパブリックリポジトリインターフェースを公開しますが、 |
| 型の可視性やアノテーションに関係なく、すべてのリポジトリを公開します。 |
|
|
| アノテーションが付けられた公開リポジトリのみが公開されます。 |
ベース URI の変更
デフォルトでは、Spring Data REST はルート URI、"/" で REST リソースを提供します。ベースパスを変更する方法は複数あります。
Spring Boot 1.2 以降のバージョンでは、次のように application.properties
で単一のプロパティを設定することでベース URI を変更できます。
spring.data.rest.basePath=/api
Spring Boot 1.1 以前の場合、または Spring Boot を使用していない場合は、次の操作を実行できます。
@Configuration
class CustomRestMvcConfiguration {
@Bean
public RepositoryRestConfigurer repositoryRestConfigurer() {
return new RepositoryRestConfigurer() {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
config.setBasePath("/api");
}
};
}
}
または、次のように、RepositoryRestConfigurer
のカスタム実装を Spring Bean として登録し、コンポーネントスキャンによって確実に取得されるようにすることもできます。
@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurer {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
config.setBasePath("/api");
}
}
前述の両方のアプローチは、ベースパスを /api
に変更します。
その他の Spring Data REST プロパティの変更
次のプロパティを変更できます。
プロパティ | 説明 |
| Spring Data REST のルート URI |
| 1 ページで提供されるアイテム数のデフォルトを変更します |
| 1 ページのアイテムの最大数を変更する |
| ページを選択するためのクエリパラメーターの名前を変更する |
| ページに表示するアイテムの数のクエリパラメーターの名前を変更します |
| 並べ替え用のクエリパラメーターの名前を変更する |
| 何も指定されていない場合に使用するデフォルトのメディア型を変更します |
| 新しいエンティティを作成するときに本文を返すかどうかを変更します |
| エンティティの更新時に本文を返すかどうかを変更する |
アプリケーションの起動
この時点で、キーデータストアも構成する必要があります。
Spring Data REST は公式に以下をサポートします。
次のスタートガイドは、すぐに立ち上げて実行できます。
これらのリンクされたガイドでは、関連するデータストアの依存関係を追加する方法、ドメインオブジェクトを構成する方法、リポジトリを定義する方法を紹介しています。
アプリケーションを Spring Boot アプリ (前述のリンクを使用) として実行するか、クラシック Spring MVC アプリとして構成することができます。
一般に、Spring Data REST は特定のデータストアに機能を追加しません。これは、定義上、リポジトリプログラミングモデルをサポートするすべての Spring Data プロジェクトで機能する必要があることを意味します。上記のデータストアは、Spring Data REST がそれらで動作することを確認するための統合テストを作成したものです。 |
この時点から、さまざまなオプションで Spring Data REST をカスタマイズできます。