Contentful APi 响应中缺少字段类型

Field Type missing from Contentful APi response

我已将我的应用程序设置为使用内容丰富的 SDK 使用内容传送 API,直到现在我意识到每个字段的 fieldType在 API 响应中缺少 内容模型 。 我错过了什么吗?我在下面提供了有关 API 及其响应的更多详细信息 -

API response

问题是如果我不知道字段类型,我将不得不要求内容编写者坚持特定的模板和字段顺序,而不是在您解析响应时动态呈现字段。

请帮忙!

您不会在响应中获得字段类型,但会获得内容类型 ID。希望您已经知道特定内容类型包含什么类型的字段。

内容类型 ID 可以在每个条目的 sys.contentType.sys.id 属性 中找到。使用此信息,您可以 select 呈现哪个模板。

如果您仍然需要根据字段类型动态决定如何呈现,则必须求助于 typeof 运算符来检查每个字段的类型。您将失去区分特定 Contentful 属性的可能性,因为它们都将作为 object.

返回

您还可以调用内容类型端点以从 Contentful API 中获取整个内容模型。 http://cdn.contentful.com/spaces/space-id/content_types/

这将为您提供每个内容类型包含的字段以及以下结构中每个字段的类型:

{
  "sys": {
     // sys properties
  },
  "displayField": "productName",
  "name": "Product",
  "description": null,
  "fields": [
    {
      "id": "productName",
      "name": "Product name",
      "type": "Text",
      "localized": true,
      "required": true,
      "disabled": false,
      "omitted": false
    },
    {
      "id": "slug",
      "name": "Slug",
      "type": "Symbol",
      "localized": false,
      "required": false,
      "disabled": false,
      "omitted": false
    },
  // further fields
  ]
}

它会导致多次 API 调用来获取您想要的信息。