4

私はspring-hateoas:0.18.0.RELEASEspring-boot:1.2.5.RELEASEを使用しています

Web サービスを呼び出してHALリンクを通過するために、 Traverson Client (Traverson JavaScript ライブラリに触発されたクライアント側サービス トラバーサル用 API) を使用しています。

Spring Hateoas Traverson ドキュメント

HypermediaHateoasRestを操作するための新しい機能です。

私の質問は、いつPagedResourcesResourceを使用する必要があるかということです。

ここで見つけた例 Traverson Client examples :

 final PagedResources<Resource<Customer>> resources = traverson
            .follow("customers","search","findByFirstName")
            .withTemplateParameters(parameters)
            .toObject(new TypeReferences.PagedResourcesType<Resource<Customer>>(){});

私が書いたコードは次のとおりです。

ParameterizedTypeReference<Resource<ProjectJSON>> resourceParameterizedTypeReference = new
                ParameterizedTypeReference<Resource<ProjectJSON>>() {};

Resource<ProjectJSON> projectJSONResource = traverson
            .follow("projects")
            .follow("$._embedded.projects[0]._links.self.href")
            .toObject(resourceParameterizedTypeReference);

同じではないことはわかっていますが、 Traverson.toObject()メソッドを呼び出すときのリソースのベスト プラクティスは何ですか?

4

1 に答える 1

5

シンプルです。PagedResourcesたくさんのアイテムを返品する場合に使用Resourceし、単一のアイテムを返品する場合に使用します。そのため、多くのオブジェクトを返すときCustomerは、それらを改ページしたい場合があり、PagedResources<Resource<Customer>>. 1 人の顧客の場合はResource<Customer>.

Resource、ドメイン オブジェクトをラップしてリンクを追加するだけです。現在リンクが必要なく、将来もリンクが必要ないことがわかっている場合は、リンクなしでも構いませんResource

PagedResources、ページ番号とページ サイズを選択するためのページ メタデータを追加します。また、サーバーは総ページ数と総アイテム数に関する情報を送信できます。ページ リソースに、ページ サイズ 5 のページ 2 を送信するように依頼すると、項目 6、7、8、9、および 10 が得られます。

于 2016-10-18T07:34:49.560 に答える