当前位置 : 主页 > 网络推广 > seo >

使用Contentful检索内容类型的更为方便的方法

来源:互联网 收集:自由互联 发布时间:2021-06-16
我正在评估Contentful.com作为Angular SPA的内容引擎. 我面临的问题是按内容类型检索条目(例如,获取“博客”类型的所有条目).如documentation example中所述,这样做如下: /spaces/spaceid/entries?acc
我正在评估Contentful.com作为Angular SPA的内容引擎.

我面临的问题是按内容类型检索条目(例如,获取“博客”类型的所有条目).如documentation example中所述,这样做如下:

/spaces/spaceid/entries?access_token=token&content_type=cat

所以在我的情况下而不是“cat”,content_type =“blog”或content_type =“news”将是我期望互动的方式.

我面临的现实是通过content_type检索事物不会让我使用我的内容类型的名称 – 它期望ID是一个丑陋的GUID,所以我的查询看起来像这样:

/spaces/spaceid/entries?access_token=token&content_type=2wKn6yEnZewu2SCCkus4as

这样做的麻烦是:

>不是开发人员友好
>不能跨环境移植(即测试空间和生产空间)

我目前唯一能看到的解决方案是在页面加载时预先检索内容类型到id映射并使用它 – 但它对性能的影响不大.

文档似乎总是使用友好可读的内容类型ID(例如cat),但这不是我的经验.

所以,为了解决这个问题,有:

>设置内容类型以获得友好ID的方法?要么
>使用不同的查询参数按名称检索条目的方法?

我曾经有过相同的问题,基本上是为了预先检索内容类型,然后创建一个将名称转换为if的小地图.性能并不是太糟糕,因为在应用程序启动时只执行一次.此外,Contentful使用CDN使响应几乎立即生效.

无论如何,这是一个好消息:虽然您无法通过Contentful的用户界面定义内容类型的ID,但您可以通过curl(也可以使用各种SDK)通过其API完全实现这一点:

curl -H 'Authorization: Bearer <access-token>' \ 
  -X PUT \
  -d '{"name": "Blog", "fields": [{"name":"Name","id":"name","type":"Symbol"}]}' \
  https://api.contentful.com/spaces/<spaceId>/content_types/blog

这将创建一个id为“blog”的内容类型,其中包含一个字段“name”.创建这样的内容类型后,您还可以转到用户界面并为其添加更多字段.

网友评论