リモートインクルード

リモートインクルードは、特にキャッシングと組み合わせて慎重に使用してください。リモートインクルードからのキャッシュミスが多すぎると、システムパフォーマンスに悪影響を及ぼします。また、認証と認可はメインリクエストに対してのみ実行され、インクルードリクエストに対しては実行されないことに注意してください。

Important

B2C Commerce 25.1 では、リモートインクルードを使用して他のソースからのレスポンスを含めることで、API レスポンスをさらに拡張できます。

たとえば、SCAPI の カスタム API またはシステム API からのレスポンスを含めて、追加の商品詳細を提供できます。

例 1: フック dw.ocapi.shop.product.modifyGETResponse は、商品のレスポンスをカスタマイズするために使用されます。カスタム API エンドポイント remoteInclude は、カスタムプロパティ c_remote を使用して商品に追加されるサンプルを提供します。

1exports.remoteInclude = function() {
2  var info = {
3    id: "test-id"
4  };
5  dw.system.RESTResponseMgr.createSuccess(info).render();
6}
1exports.modifyGETResponse = function(scriptProduct, doc) {
2  var include = dw.system.RESTResponseMgr.createScapiRemoteInclude('custom', 'my-api', 'v1', 'remoteInclude');
3    doc.c_remote = {
4      value: [ include ]
5    };
6}

例 2: フック dw.ocapi.shop.product.modifyGETResponse は、商品のレスポンスをカスタマイズするために使用されます。これは、カスタムプロパティ c_remote を使用して商品に追加されるプロモーションデータによって拡張されます。

1exports.modifyGETResponse = function(scriptProduct, doc) {
2  var include = dw.system.RESTResponseMgr.createScapiRemoteInclude('pricing', 'shopper-promotions', 'v1', 'promotions', dw.web.URLParameter("siteId", "MySite"), dw.web.URLParameter("ids", "my-first-promotion,my-second-promotion"));
3    doc.c_remote = {
4      value: [ include ]
5    };
6}

配列に複数のリモートインクルードを追加して、複雑で強力なレスポンスを作成できます。

Note

  • RestResponseMgr メソッド createScapiRemoteInclude() では、SCAPI URL のみが許可されます。
  • RestResponseMgr メソッド createStorefrontControllerRemoteInclude() では、コントローラー URL のみが許可されます。

クロス API リクエスト (たとえば、カスタム API または SCAPI フック内にコントローラーのレスポンスを含める) は使用できません。

Important

詳細と例については、RemoteInclude およびフック間でのデータの受け渡しを参照してください。