開発者コンソール

手順3: カテゴリーレシピをセットアップする


手順3: カテゴリーレシピをセットアップする

この手順では、フィードのカテゴリーレシピの構成を開始します。カテゴリーは、メディアをさまざまなコレクションやチャンネルにグループ化します。カテゴリーを使用してメディアを整理することで、すべてのビデオを1つの長いリストで管理する必要がなくなります。レシピ構成の全般的な概要については、レシピ構成の概要を参照してください。

カテゴリーレシピの構成

  1. LightCastレシピファイルを複製して名前を変更していない場合は、前のトピックのレシピファイルのカスタマイズを参照してください。

  2. <プロジェクト名>CategoriesRecipe.jsonファイル(app > assets > recipes内)を開きます。

    デフォルトのカテゴリーレシピ構成は次のようになっています。

    {
      "cooker": "DynamicParser",
      "format": "json",
      "model": "com.amazon.android.model.content.ContentContainer",
      "translator": "ContentContainerTranslator",
      "modelType": "array",
      "query": "$..categories[*]",
      "queryResultType": "[]$",
      "matchList": [
        "StringKey@mName"
      ],
      "keyDataType": "StringKey@keyDataPath"
    }
    
  3. 以下の表の説明に従って、ファイルの値を構成します。

    キー 説明

    cooker

    レシピで定義されたパラメーターを受け取ってロジックを実行するユーティリティを定義します。つまり、レシピを「料理」するのがcookerです。この値は、デフォルトの DynamicParserのままにします。

    format

    受信データフィードのデータ形式を指定します。指定できる値はjsonまたはxmlです。

    model

    データのコンテンツモデルを指定します。コンテンツモデルは、コンテンツの構造を提供し、その構造をFire App BuilderのUIにマッピングします。これはデフォルトのcom.amazon.android.model.content.ContentContainerのままにします。

    translator

    フィードのオブジェクトをFire App Builderのコンテンツモデルに変換するときに、トランスレーションとリフレクションのどちらを使用するかを指定します。トランスレーションの方が高速であり、推奨されます。トランスレーションを使用するには、この値をデフォルトの ContentContainerTranslatorのままにします。代わりにリフレクションを使用する場合は、レシピからtranslatorパラメーター全体を削除します。

    modelType

    フィードが配列であるか単一オブジェクトであるかを指定します。指定できる値はarrayまたはsingleです。ほとんどのフィードはarrayです。たとえば、JSONフィードが角かっこで囲まれている場合や、XMLフィードで山かっこが入れ子になっている場合は、arrayを選択します。フィードが1つのオブジェクトとして構成されている場合は、singleを選択します。

    query

    メディアフィードからカテゴリーを返すために使用されるクエリ。クエリの構文は、フィードの構造によって異なります。カテゴリーを取得するには、適切なクエリを作成する必要があります。JSONフィードの場合は、クエリ構文にJayway JsonPath構文(英語のみ)を使用します。XMLフィードの場合は、XPath式(英語のみ)を使用します。現時点では、このフィールドの値はそのままにします。これは、次の手順の カテゴリーレシピ:queryパラメーターで構成します。

    queryResultType

    queryパラメーターの結果が文字列のリストを返す場合は、このqueryResultTypeパラメーターを追加して、値を[]$に設定します。クエリの結果がオブジェクト(マップ)である場合は、このパラメーターを省略します(Fire App Builderでは、オブジェクトをJavaハッシュマップにプッシュする必要があるため、結果の型を把握する必要があります)。 現時点では、このフィールドの値はそのままにします。これは、次の手順の カテゴリーレシピ: queryパラメーターで構成します。

    matchList

    queryパラメーターで定義したクエリからは、結果が返されます。この結果では、フィードで使用されている名前を、Fire App Builderのコンテンツモデルで使用される名前にマッピングする必要があります。matchListパラメーターは、クエリの結果をFire App Builderのメディアカテゴリーの名前にマッピングします。現時点では、このフィールドの値はそのままにします。これは、後の手順の カテゴリーレシピ: matchListパラメーターで構成します。

    keyDataType

    カテゴリーに関連するメディアオブジェクト。どのメディアをどのカテゴリーにグループ化するかを指定する必要があります。matchListと同様に、ターゲットとするアイテムを左側に記述し、@keyDataPathを続けて、それらのメディアオブジェクトをカテゴリーにマップして識別します。たとえば、 StringKey@keyDataPathのようになります。現時点では、このフィールドの値はそのままにします。これは、後の手順の カテゴリーレシピ:matchListパラメーターで構成します。

カテゴリーのないフィード

フィード内にカテゴリーがなく、カテゴリーごとに個別のフィードを用意している場合は、Navigator.jsonの構成時にカテゴリー名をハードコードできます。これにより、特定のフィードに含まれているすべてのビデオが特定のカテゴリーにグループ化されます。この方法の詳細については、カテゴリーのハードコードを参照してください。

次のステップ

これでカテゴリーレシピの基本的なプロパティが構成されたので、queryパラメーターについて詳しく見ていきましょう。次の手順の カテゴリーレシピ:queryパラメーターに進みます。