3

Spring には@ExposesResourceFor、リソースを他のリソースとリンクできるアノテーションがあります。このおかげで、Value オブジェクト (表現) は実際のリソースについて何も知ることができません。

JAX-RSでそれを行う方法はありますか? 私はJerseyとJacksonでDropwizardを@InjectLinks使用していますが、表示されるのは次のような値オブジェクトで使用できる注釈だけです:

public class UserGroup {
    @JsonProperty
    public String name;

    @InjectLinks(GroupsResource.class)
    public URI myResource;

    public UserGroup(String name){
        this.name = name;
    }
}

しかし、残念ながら、私の値オブジェクトはリソースについて何も知らないはずなので、リソースのレベルでそのようなリンクを行うことができるかどうか尋ねています-上記のように、コントローラーのスプリングヘイトでリンクします。

4

1 に答える 1

3

では、モデル クラスでリンクを宣言する@InjectLinks必要はありませんJersey の例からの宣言的リンクに示されているように、 「ラッパー」表現クラスを作成できます(ただし、このソリューションは実際にはリソース クラス レベルではありません)。

(宣言的なリンクではなく) 別の可能な解決策は、JAX-RS 2.0Linkクラスを使用し、プログラムでリンクを行うことです(Jersey の実装/アノテーションとは関係ありません)。hereを参照して、レスポンス ヘッダーにリンクを追加するか、hereLinkを参照してモデル クラスに s を追加します(または、モデル クラスに侵入しないように、これにもラッパー クラスを使用します)。

いくつかのリソース

于 2014-11-03T15:17:46.670 に答える