从内容条目 ID 获取图像 URL



我需要从内容条目ID获取图像URL。我从内容查询中获得了这样的 JSON

{
"sys":{
  "space":{
     "sys":{
        "type":"Link",
        "linkType":"Space",
        "id":"8v1e7eaw70p2"
     }
  },
  "id":"1JfEwVlD9WmYikE8kS8iCA",
  "type":"Entry",
  "createdAt":"2018-02-28T18:50:08.758Z",
  "updatedAt":"2018-02-28T18:50:08.758Z",
  "revision":1,
  "contentType":{
     "sys":{
        "type":"Link",
        "linkType":"ContentType",
        "id":"image"
     }
  },
  "locale":"en-US"
},
"fields":{
  "name":"heat",
  "image":{
     "sys":{
        "type":"Link",
        "linkType":"Asset",
        "id":"6Inruq2U0M2kOYsSAu8Ywk"
     }
  }
}
}

我正在使用他们提供的JS驱动程序:

client.getEntry()

那么如何通过该链接: 6Inruq2U0M2kOYsSAu8Ywk ?

不幸的是,当使用单个条目端点时,js SDK 将无法解析链接,即client.getEntry()因为没有足够的数据。

当我始终建议解决此问题时,将使用具有所需 id 的查询的集合终结点作为查询参数。这样,您将始终获得所需的条目及其所有链接数据。你的代码应该看起来像这样

client.getEntries({'sys.id': '6Inruq2U0M2kOYsSAu8Ywk'})
  .then(response => console.log(response.items[0].fields.image.fields.file.url))

我希望这有所帮助。最好Khaled

使用 client.getEntries({'sys.id': '1JfEwVlD9WmYikE8kS8iCA'})获取输入字段和资产字段。

您还可以通过在获取数据后运行以下命令将资产修补到字段:

/* Patch all the assets to the fields */
  const patchAssets = (fields, assets) => {
    Object.keys(fields).forEach(function (key) {
      let obj = fields[key];
      if (obj.sys && obj.sys.linkType === 'Asset') {
        const assetId = obj.sys.id;
        const matchAsset = assets.find(asset => {
          return asset.id === assetId;
        });
        obj.file = matchAsset;
      }
    });
    return fields;
  };

获取图像 url 的另一种方法是使用 getAsset('<asset_id>') 。因此,首先,使用 getEntry() 方法,您需要获取条目数据,然后从字段中提取 id:fields.image.sys.id,并将其传递给 getAsset 方法。

相关内容

  • 没有找到相关文章

最新更新