0

私たちは新しいプロジェクトを開始しており、spring-hateoas / hypermedia の使用を検討しています。HALブラウザも面白そうなので見てみたいと思いました。

ただし、HAL ブラウザーは spring-data-rest にバンドルされているようで、これは (さまざまな理由で) 使用したくありません。

少なくとも、すべてのリポジトリを rest-resource として自動公開することは望ましくありませんが、これを行う場合は、spring-hateoas でリンクを定義することに加えて、HAL ブラウザーのリンクを明示的に定義する必要があります。

リポジトリを自動公開しない場合、定義する必要があります

implements ResourceProcessor<RepositoryLinksResource>

@Override
    RepositoryLinksResource process(RepositoryLinksResource resource) {
        resource.add(link('/{id}').withRel('my-dummy'))

        return resource
    }

すでに定義されているリンクに加えて (hateoas を使用)

link('/{id}').expand(entity.id).withSelfRel()

これは面倒なようで、DRY 原則に準拠していません。これらのリンクはすでに別の場所で定義されているため、@Override メソッド RepositoryLinksResource プロセス (RepositoryLinksResource リソース) を実装したくありません。

私が最初に考えたのは、HAL ブラウザーは、hateoas で既に定義されているリンクを再利用するというものでした。しかし、私はそれを正しく理解していませんでしたか?

だから質問は

spring-data-rest を使用せずに、Spring バンドルされた HAL ブラウザーを使用する方法はありますか?

また、リポジトリを自動公開しない場合、HAL ブラウザーのリンクを手動で明示的に定義する必要はありませんか?

4

1 に答える 1

3

Spring が提供する HAL ブラウザは、spring-data-rest なしでは使用できません。

同様のニーズがあり、次のオプションを検討していました...

  1. Spring HAL ブラウザーを別のプロジェクト (別のポートでホストされている) にパッケージ化し、元のプロジェクトに @CrossOrigin のマークを付けます。
  2. 汎用 HAL ブラウザーをパッケージ化します。

私は最初のアプローチを試みなかったので、他の問題に直面するかどうかはわかりません.

2 番目のアプローチは、HAL ブラウザー ( https://github.com/mikekelly/hal-browser ) をダウンロードし、Spring Boot プロジェクト フォルダー src/resources/public ( https://spring.io/blog/ 2013/12/19/serving-static-web-content-with-spring-boot )。

于 2017-12-04T07:36:31.250 に答える