我已使用API成功创建了我的知识库。 但我忘了为其中一对添加一些替代问题和元数据。
我注意到API中的{
"add": {
},
"delete": {
},
"update": {
"qnaList": [
{
"id": 1,
"answer": "Answer",
"source": "link_to_source",
"questions": [
"Question 1?",
"Question 2?"
],
"metadata": [
{
"name": "oldMetadata",
"value": "oldMetadata"
},
{
"name": "newlyAddedMetaData",
"value": "newlyAddedMetaData"
}
]
}]}
}
方法更新了Knowledebase,因此支持更新kb。
我创建了一个有效载荷,如下所示:
HTTP 202 Accepted
我收到以下回复{
"operationState": "NotStarted",
"createdTimestamp": "2018-05-21T07:46:52Z",
"lastActionTimestamp": "2018-05-21T07:46:52Z",
"userId": "user_uuid",
"operationId": "operation_uuid"
}
:
{
"operationState": "Succeeded",
"createdTimestamp": "2018-05-21T07:46:52Z",
"lastActionTimestamp": "2018-05-21T07:46:54Z",
"resourceLocation": "/knowledgebases/kb_uuid",
"userId": "user_uuid",
"operationId": "operation_uuid"
}
所以看起来很有效。但实际上,这个要求并没有任何影响。
当我检查操作细节时,它会返回以下内容:
{{1}}
我做错了什么?我应该如何通过API正确更新我的kb?
请帮忙
答案 0 :(得分:1)
我遇到了同样的问题,我发现即使不使用json,也必须拥有所有数据。 在您的情况下,您需要“更新”部分中的“名称”和“ URL”,以及“更新/ qnaList /问题”部分中的“删除”:
{
"add": {},
"delete": {},
"update": {
"name": "nameofKbBase", //this
"qnaList": [
{
"id": 2370,
"answer": "DemoAnswerEdit",
"source": "CustomSource",
"questions": {
"add": [
"DemoQuestionEdit"
],
"delete": [] //this
},
"metadata": { }
}
],
"urls": [] //this
}
}