0

コンテンツ API は初めてです。レベル 0 タグ エントリ (コンテンツ タイプ) を取得するための URL を入力すると、リンク タグが作成されました。子要素IDを取得しています

fields": {
"level0Tag": "Problem Solving",
"level1ChildTags": [
  {
    "sys": {
      "type": "Link",
      "linkType": "Entry",
      "id": "4uKXvRK0veAoEuk2yAuQ2Y"
    }
  },
  {
    "sys": {
      "type": "Link",
      "linkType": "Entry",
      "id": "3QMVgykrBey8KQ2SOw8CU6"
    }
  }
],
"displayChildTags": true

レベル 1 の子タグの名前フィールドを取得したいのですが、取得方法を教えてください。

4

3 に答える 3

1

リンクされたエントリまたはアセットを取得すると、取得するのは、リンクの種類に関連するメタデータを含む sys プロパティを持つこのオブジェクトです (この場合、エントリであり、ID が含まれていることがわかります)。また、JSON 応答の最上位で、リンクされたすべてのアセットを含む配列を持つ「includes」プロパティを取得する必要があります。

デフォルトでは、API は 1 レベルのリンクを解決します。複数のレベル (またはレベルなし) が必要な場合は、"include" クエリ文字列パラメーター (include=2 など) を使用できます。

Javascript SDK などの SDK のいずれかを使用すると、応答でこれらのリンクが解決され、実際のオブジェクトに置き換えられますが、デフォルトでは REST API はこれを行いません。

また、これは などのコレクション エンドポイントをクエリする場合にのみ発生し、 など/entriesの単一アイテム エンドポイントでは発生しないことに注意してください/entries/id

詳細については、https://www.contentful.com/developers/docs/concepts/links/およびhttps://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/entriesを確認してください。 /entry/query-entries?console=1

于 2015-10-12T12:23:02.250 に答える
0

最初に使用してみましgetEntryたが、ドキュメントにあるように、これはリンクされたコンテンツをロードしません。代わりに使用したのは次のとおりです。

function getOneNewsItemFromCMS(uid, callback) {
    // Using getEntries rather than getEntry ensures that we get linked items too
    client().getEntries({ 'sys.id': uid })
        .then(function (entries) {
            const item = processContentfulNewsItems(entries.items)[0];
            callback(item);
        });
}  

この関数processContentfulNewsItemsは、Contentful によって返された JSON 形式を、React オブジェクトが期待するものにマップします。

于 2016-12-20T11:27:59.317 に答える