キャッシング

カスタム API では、レスポンスのキャッシュがサポートされています。 この機能を使用すると、データを繰り返し取得または計算する必要性が減り、パフォーマンスが向上するため、レスポンスタイムが短縮され、システム全体の効率が向上します。 キャッシング戦略についての詳細は、Salesforce B2C Commerce のキャッシング戦略を参照してください。

カスタム API エンドポイントでキャッシングを使用するには、カスタム API を使用するサイトで ページキャッシング を有効にします。その後、レスポンスは次の方法で実装スクリプトにキャッシュできます。

  • dw.system.Response#setExpires(milliseconds) Script API メソッドを使用して、ここで説明するようにキャッシュ時間を設定します。
  • dw.system.Response#setVaryBy(identifier) Script API メソッドを使用して、ここで説明するようにレスポンスをパーソナライズ済みとしてマークします。これは、レスポンスが実際にパーソナライズされていない場所でパフォーマンスが低下する可能性があるため、注意して使用してください。

例 1: レスポンスを 60 秒間キャッシュするカスタム商品 API の実装:

1var RESTResponseMgr = require("dw/system/RESTResponseMgr");
2
3exports.getCustomProduct = function () {
4  var customProduct = // ... some lookup of custom product data ...
5    // set cache time to 60 seconds
6    response.setExpires(Date.now() + 60000);
7
8  RESTResponseMgr.createSuccess(customProduct).render();
9};
10
11exports.getCustomProduct.public = true;

例 2: プロモーションに基づいてレスポンスをキャッシュするカスタム商品 API の実装:

1var RESTResponseMgr = require("dw/system/RESTResponseMgr");
2
3exports.getCustomProduct = function () {
4  var customProduct = // ... some lookup of custom product data ...
5    // set caching based on promotion
6    response.setVaryBy("price_promotion");
7
8  RESTResponseMgr.createSuccess(customProduct).render();
9};
10
11exports.getCustomProduct.public = true;