contentful - 获取“您发送的正文包含未知密钥。” 尝试创建内容丰富的条目时
问题描述
我创建了一个名为“用户”的内容模型,其中包含两个字段:
- id - 文本,唯一,必填
- 电子邮件 - 文本,可选
当我尝试使用以下参数通过内容管理 API 创建新条目时:
Headers:
X-Contentful-Content-Type : user
Content-Type : application/vnd.contentful.management.v1+json
Method
PUT
URL
https://api.contentful.com/spaces/qilo7tiaixh8/environments/entries/
Body:
{
"id":"whatever",
"email": "peter@petervukovic.com"
}
我收到以下错误:
{
"requestId": "2849bbcd7ee0486bb36b47927071f37b",
"sys": {
"type": "Error",
"id": "UnknownKey"
},
"message": "The body you sent contains an unknown key.",
"details": {
"errors": [
{
"keys": [
"id",
"email"
]
}
]
}
}
我不知道我做错了什么,因为官方文档中的示例没有帮助(他们假设我没有使用多语言内容)并且没有调试提示。
解决方案
内容丰富的 DevRel 在这里。
我刚刚尝试过,下面的 CURL 适用于user
定义title
字段的内容类型。
curl --include \
--request PUT \
--header 'Authorization: Bearer ...' \
--header 'Content-Type: application/vnd.contentful.management.v1+json' \
--header 'X-Contentful-Content-Type: user' \
--data-binary '{
"fields": {
"title": {
"en-US": "Hello Test"
}
}
}' \
https://api.contentful.com/spaces/.../environments/master/entries/\test-1
您似乎缺少fields
在有效负载中包含该属性。关于本地化部分,我认为需要为您的字段值提供语言环境。所以在我的例子中,en-US
是默认值,它是必需的。
对于使用PUT
,您必须定义或提出一个条目 id。
要在不传递和定义 id 的情况下创建条目,请查看Entry collection中的文档。
curl --include \
--request POST \
--header 'Authorization: Bearer ...' \
--header 'Content-Type: application/vnd.contentful.management.v1+json' \
--header 'X-Contentful-Content-Type: user' \
--data-binary '{
"fields": {
"title": {
"en-US": "Hello Test 2"
}
}
}' \
https://api.contentful.com/spaces/.../environments/master/entries/