私たちの Web アプリケーションには、非常に遅いデータ集約型の UI ページがいくつかあります。現在使用しているクライアント側の並べ替えとフィルタリングでは、これらのページに API からすべてのデータを (JSON で) ロードしてから、これは通常、ページが使用可能になる前に数秒間フリーズすることを意味します。私たちが検討している解決策は、フィルタリングとソートをサポートするサーバー側のページングを提供することです。
ページングの場合、URL で pageIndex パラメーターと pageSize パラメーターを送信していますが、正常に動作します。ソート (およびフィルタリング) のために、プロパティの名前を送信してソート (およびフィルタリング) し、API で解析してデータの適切なクエリを生成できる JSON オブジェクト内で使用することを考えています。ここで私が抱えている問題は、物事を可能な限りシンプルかつ高速にするために、UI ページが、データを並べ替え (またはフィルター処理) するデータ列名について「認識」する必要があることです。これは望ましくありません。
たとえば、API は「FN」というプロパティ (JSON オブジェクト内) でユーザーの名を送信します。ただし、ファースト ネームでユーザーを並べ替えるように API に要求するには、UI はデータベース内の列の名前である "FirstName" を並べ替えプロパティとして送信する必要があります。このメソッドを使用すると、プロパティの名前をデータ レイヤーに直接渡すことができ、作業をすばやく完了できます。ただし、データベース内のデータ テーブルの列の名前を認識するための UI の必要性は、レイヤー間で関心を分離するという考え全体をほとんど台無しにします (これが、Web アプリを個別の API に分割する主な動機でした)。 UI)。
UI とバックエンドの間にこの依存関係を作成せずに、サーバー側のページングにフィルタリングと並べ替えを提供するクリーンな方法はありますか?
ありがとうございました。