2

私はJersey宣言型ハイパーリンクとJAXBを使用して、かなり単純に見えることを実現しようとしていますが、すべてのドキュメントと例を読んだにもかかわらず、うまく機能しないことがわかりました。

私は本を​​持っている書店を持っていますが、それぞれにタイトルだけがあります。GET / bookstoreが本へのハイパーリンクの配列だけを返すようにしたいのに対し、GET / bookstore/some-titleは実際のシリアル化された本の属性を返します。

私はリソースと「表現」、そして@Refが機能することになっている方法と完全に混乱しています。これを設計するための最もクリーンな方法は何でしょうか?

ケーキのアイシングは、クエリパラメータに基づいて、いずれかのバージョンの書店コレクション(本のURIだけで浅い、または実際の本の属性で深い)を取得する機能です...

私はこのメソッドを書店に追加しようとしました:

@XmlElement
public BookRef[] getBookReferences()
{
    BookRef[] refs = new BookRef[_books.size()];
    for (int i = 0; i < refs.length; i++) {
        refs[i] = new BookRef(_books.get(i).getTitle());
    }
    return refs;
}

このBookRefクラスで:

@XmlRootElement(name="book")
public class BookRef
{
    private String _title;

    public BookRef()
    {
    }

    public BookRef(@PathParam("title") String title)
    {
        _title= title;
    }

    @Ref(resource=Book.class,
         style = Ref.Style.ABSOLUTE,
         bindings=@Binding(title="title", value="${instance.title}")
    )
    private URI _self;

    @XmlElement
    public URI getURI()
    {
        return _self;
    }
}

...しかし、それは(JSONで)次のようになります:{"bookReferences":null}

4

0 に答える 0