現在マイクロサービスアーキテクチャにて、REST APIとフロントエンドの開発を行っています。
ウェブサイトの描画の都合上、1ページで100を超えるリソースの一部情報を取得したいのですが、全てのリソースを素直に取ろうとすると、ページ描画に必要な情報が揃うまでに長いロード時間を要します。(実際にはBFF層がリクエストの集約を行っています)
リソースの情報をresources/:id
から取得する際、大量のデータベースレコードを集約した結果を返すため、どうしてもレスポンスタイムが遅くなってしまいます。
ただし対象となるウェブサイトで必要な情報はその中の一部のみで、集約処理が必要でないので、それだけを返すならばかなり高速なレスポンスが可能です。
マイクロサービスとして開発している以上、REST APIが画面の都合を知った上で設計するのは望ましくないと考えており、またURL設計としてresources/:id
の形が基本だと認識しています。
その上で、欲しいフィールドのみを返すのはREST APIとしてあるべき形なのか、またそうであるならばどのようなURL設計にするべきなのでしょうか。
例としてarticle
リソースがあり、articles/:id
を叩くと重い集約作業が発生しますが、今回ほしいのはcomment_count
のような軽い情報だけというケースになります。
もし今回のケースにおいて知見がある方がいらっしゃればご回答頂けると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。