リモートインクルード

リモートインクルードは、特にキャッシングと組み合わせて慎重に使用してください。リモートインクルードからのキャッシュミスが多すぎると、システムパフォーマンスに悪影響を及ぼします。現在、リクエストごとに 50 を超えるインクルードを使用すると、警告がトリガーされます。将来的には、この制限が厳密に適用され、エラーが発生するようになります。問題を回避するために、しきい値を超えないようにしてください。また、認証と認可はメインリクエストに対してのみ実行され、インクルードリクエストに対しては実行されないことに注意してください。

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

Important

B2C Commerce 24.2 では、カスタム API リモートインクルードを使用して、独自の SCAPI レスポンスを作成し、SCAPI システム API や他のカスタム API など、他のソースからのレスポンスを含めることができます。

例: includeTest1 という名前の API エンドポイントを作成します。2 番目の API エンドポイント remoteInclude は、includeTest1 エンドポイントからレスポンスを取得し、それを includeArray 配列に includeArrayItem1 として追加します。

1exports.includeTest1 = function() {
2  var data = {
3    id: "includeTest1",
4  };
5  dw.system.RESTResponseMgr.createSuccess( data ).render();
6}
7
8exports.remoteInclude = function() {
9  var includeArrayItem1 =
10    dw.system.RESTResponseMgr.
11    createScapiRemoteInclude( "custom", "sample", "v1", "includeTest1",
12    dw.web.URLParameter( "siteId", "TestWapi" ) );
13
14  var info = {
15    id: "test-id",
16    includeArray: [includeArrayItem1]
17  };
18
19  dw.system.RESTResponseMgr.createSuccess( info ).render();
20}

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

Note

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

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

Important

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