3

次のシグネチャを持つメソッドにリンクしたい:

public SomeResponse getSomeObjects(@RequestParam(value = "foo", defaultValue = "bar") Foo fooValue)

今、私はリンクを次のようにしたいと考えています:

http://myhost/api/someobjects

以下に示すようにmethodOn、Spring HATEOAS から使用してみました。ControllerLinkBuilder

discoverResponse.add(linkTo(methodOn(SomeController.class).getSomeObjects(null)).withRel("someobjects"))

?fooしかし、最後に a が追加されているため、目的のリンクにはつながりません。上記の目的を達成するにはどうすればよいですか?

4

2 に答える 2

2

下位互換性はあなたにとって非常に重要な問題であるため、次のように Link オブジェクトを手動で構築できます。

discoverResponse.add(new Link(baseUri() + "/someobjects", "someobjects"));

もう 1 つのオプションは、Spring HATEOAS を GitHub でフォークし、自分でプロジェクトをビルドし、デフォルトの処理方法を変更することControllerLinkBuilderです。コンテキスト外の Link ビルダーが、オプションのパラメーターをアドバタイズする必要があるかどうかをどのように区別できると期待するのか、私にはよくわかりません。HATEOAS の世界では、パラメータが含まれていないと、クライアントはそれを知りません。では、なぜオプションのパラメーターがあるのでしょうか?

于 2013-11-27T12:33:12.747 に答える