Sitecoreレイアウトサービス

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

大事な

前に アプリを統合した場合は、従来の ASP.NET Core Rendering SDKバージョン22以前を使用しています。このSDKは更新を受け取っていないため、新しい の最新バージョンにアップグレードすることをお勧めします。

Sitecoreレイアウト サービスは、JSON形式のSitecoreコンテンツを提供するSitecoreヘッドレス サービス エンドポイントです。Sitecoreレイアウト サービス クライアントを使用してレイアウト サービスと通信し、Sitecoreレンダリング エンジンを使用してコンテンツをレンダリングします。

レイアウト サービス クライアント ライブラリはNuGetパッケージとして使用でき、名前の先頭にはSitecore.LayoutService.Clientが付きます。

SitecoreLayoutRequestモデル

SitecoreLayoutRequestモデルは、任意のプロパティの読み取りと書き込みをサポートする中間データ転送オブジェクトにインスタンス化します。レイアウト サービス クライアントは、クエリ文字列キーを使用して、これらのプロパティをレイアウト サービスに送信します。

SitecoreLayoutRequestモデルには、デフォルトのプロパティのセットと、それに関連する組み合わせられたget/setメソッドが含まれています。たとえば、request.ApiKey()はAPIキーの値を取得し、request.ApiKey("value")はAPIキーの値を設定します。

デフォルトのプロパティは次のとおりです。

財産

方式

コンテンツ

見本

クエリ文字列キー

APIキー (必須)

ApiKey() 

GUIDの

123e4567-e89b-12d3-a456-426614174000

sc_apikey

アイテム(必須)

Path()

コンテンツ ツリー パス

/articles

item

サイト名

SiteName()

人間が読める名前

MySite

sc_site

言語

Language() 

ISO言語コード

enen-GB

sc_lang

SitecoreLayoutResponseモデル

レイアウト サービスは、フィールド レベルまでナビゲーションできるように設計された、厳密に型指定されたSitecoreLayoutResponseモデルからインスタンス化されたオブジェクトを返します。SitecoreLayoutResponseオブジェクトは、いくつかの部分で構成されています。

  • Request- レイアウトサービスに送信されるSitecoreLayoutRequest

  • Metadata- HTTP応答ヘッダーなどの応答メタデータ。

  • Content- 逆シリアル化されたJSON応答。

  • Errors- SitecoreLayoutRequestオブジェクトの処理とSitecoreLayoutResponseオブジェクトのビルド中に発生したエラーの一覧。

  • HasErrors- これは、Errorsリストが空でない場合に当てはまります。

タイプとフィールド

Content次のタイプを使用します。

  • Route- Layout Serviceから返されるJSONレスポンスのRouteオブジェクトにマップされます。そのフィールドはDictionary<string, IFieldReader>として入力されます。

  • Component- プレースホルダーのリスト値内のオブジェクトにマップされます。そのフィールドはDictionary<string, IFieldReader>として入力されます。

  • IFieldReader-RouteまたはComponentのフィールドエントリにマッピングします。この実装は、Newtonsoftなどのシリアル化ライブラリによって提供されます。

  • IField- レイアウトサービスクライアントでは、IFieldのさまざまな実装が提供されます。このインターフェイスは、IFieldReaderを介して読み取ることができるタイプを識別するためのマーカーとして使用されます。

レイアウトサービスクライアントには、次のフィールドがあります。

  • CheckboxField- チェックボックスフィールド。

  • ContentListField- アイテムリンクフィールドのリスト。

  • DateField- 日付と時刻のフィールド。

  • FileField- ファイルフィールド。

  • HyperLinkField- リンクフィールド。

  • ImageField- 画像フィールド。

  • ItemLinkField- 単一項目フィールド。

  • NumberField- 数値フィールド。

  • RichTextField- リッチテキストフィールド。

  • TextField- 1行または複数行のテキスト フィールド。

フィールドは、次のようなさまざまなフィールド プロパティを公開するために、複数のインターフェイスを実装できます。

  • IValueField<T>- タイプTValueプロパティを公開します。

  • IEditableField- 編集可能なフィールドの前後にマークアップを公開します。

構文

IFieldReader型は、IFieldを実装する型を指定すると、IFieldReaderからのデータが設定された型のインスタンスを返すRead()メソッドを公開します。

ComponentRouteはどちらも、Fieldsを公開する同じ基本実装を継承します。さらに、次のものを公開します。

  • ReadField() -IFieldの型と、指定されたフィールドを読み取るためのstringを受け取ります。

  •  ReadFields()- プロパティ名とフィールド名に一致するすべてのフィールドが設定された任意の型を受け取ります。

ASP.NETのRESTレイアウトサービスクライアント構成

次の例は、アプリケーションStartupクラスのConfigureServicesメソッドでASP.NET Rendering SDKと共にレイアウト サービス クライアントを使用する方法を示しています。

services 
  .AddRouting() 
  .AddMvc() 

  // Configure the required Newtonsoft.Json serialization behavior for use
  // with the Layout Service Client.
  // The Layout Service Client requires Json.NET due to limitations in System.Text.Json.
  .AddNewtonsoftJson(o => o.SerializerSettings.SetDefaults()); 

  // Register the Sitecore Layout Service Client,
  // which is used by the ASP.NET Rendering Engine.
  .AddSitecoreLayoutService() 

  // Configure the default parameters for Layout Service Client requests.
  .WithDefaultRequestOptions(request => 
  { 
    request 

      // Optional language configuration, if the application is not using localized routes.
      // .Language("en")

      // The name of the Sitecore site that this application is rendering.
      .SiteName("website")

      .ApiKey("{00000000-0000-0000-0000-000000000000}");
  }) 

  // Provide the URL to the Layout Service on your Sitecore instance.
  // In production, this is typically a Content Delivery server.
  // In development, it might be a standalone combined Content Management
  // and Content Delivery instance.
  .AddHttpHandler("default", "https://<sitecore instance>/sitecore/api/layout/render/jss") 
  .AsDefaultHandler(); 

レイアウト サービスにアクセスするには、Sitecoreサービス クライアントAPIキーのIDApiKeyメソッドに提供する必要があります。

ASP.NET用のGraphQLレイアウトサービスクライアント設定

次の例は、GraphQLエンドポイントを使用してレイアウト サービス クライアントを構成する方法を示しています。

services 
  .AddRouting()
  .AddMvc()

  // Register the Sitecore Layout Service Client used by the ASP.NET Rendering Engine.
  .AddSitecoreLayoutService()

  // The name of the Sitecore site the application is rendering.
  var siteName = "website";

  // The ID of the Sitecore Services Client API Key to access the GraphQl endpoint and Layout Service.
  var apiKey = "{00000000-0000-0000-0000-000000000000}";

  // The URL to the GraphQl Edge Scheme Endpoint on your Sitecore instance.
  // In production, this is typically an Experience Edge environment.
  // In development, it might be a standalone combined Content Management.
  var uri =  "https://<sitecore or edge instance>/<graphql schema url>";

  // Configure GraphQl Handler for interacting with Layout Service
  .AddGraphQlHandler("default" ,siteName , apiKey, uri)
  .AsDefaultHandler();
この記事を改善するための提案がある場合は、 お知らせください!