クライアント (UI) とサーバー間の通信に REST API を使用しています。たとえば、次のような 1 つのタイプのリソースのページ化された GET を実装しました。
GET http://../cars?page-size=10,start-index=3
car 21 から始まる最大 10 台の車 (つまり、10 台の車の 3 ページ目) が返されます。
関連エンティティを持つエンティティを返す可能性を追加したいと考えています。この場合、多数の関連エンティティ (場合によっては数十または数百) が 1 つのメイン エンティティに存在する可能性があります。現在、これは 2 つのリクエストを使用して行われます。たとえば、最初に車で GET を実行し、次に以前に取得した車の ID をパラメーターとして使用してドアで GET を実行します。
GET http://../doors?car-ids=1,2,5,7,...
ただし、リクエストの数を最小限に抑えるために、必要な情報を返すために 1 つのリクエストを使用したいと考えています。次の疑問が生じます。
- ページングをそのような機能とどのように統合する必要がありますか? 関連エンティティの数 (ドア) は、メイン エンティティ (車) のページ サイズに制限する必要がありますか? メイン エンティティと関連エンティティのページ サイズを分ける必要があるのではないでしょうか (例: 車 10 台、車ごとに最大 2 ドア)。
- メモリ使用量に関して、ソリューションがサーバー側でスケーラブルであることを確認するにはどうすればよいですか? 現在、エンティティを XML にシリアル化するために JAXB を使用しています。ストリーミング XML 手法 (STAX) を使用して、すべてのエンティティがメモリに読み込まれないようにすることを検討する必要がありますか?
どうもありがとう。