我有点困惑为什么以下不起作用。
我通过请求连接到ConnectWise API。我得到了回复,然后我解析了找到我要找的门票。然后我试图修补票证以更改某些信息。
通过API返回的示例json。
{
"id": 12345,
"summary": "[CompanyName][ComputerName] Disk Space Check - drive G:",
"recordType": "ServiceTicket",
"board": {
"id": 1,
"name": "Board1",
},
"status": {
"id": 5,
"name": "NewTicket",
},
"owner": {
"id": 1,
"identifier": "",
一旦我确定了我需要使用的机票。我试着修补它。
def assign_ticket(self, ticket):
add_resource = [
{'op': 'replace', 'path': '/board/name', 'value': 'Board2'},
{'op': 'replace', 'path': '/status/name', 'value': 'NewTicket2'},
{'op': 'replace', 'path': '/owner/identifier', 'value': 'MyBrainHurts'}
]
r = requests.patch(self.url + self.url_ticket + str(ticket), json=add_resource, headers=self.header)
print(r.status_code)
它返回200状态代码以完全正确地指示所有内容,但仅更新/ owner / identifier字段。另外两个不是。我已经谷歌了好几天,并尝试了多种代码变体,但我不明白为什么它不会改变董事会或状态。有任何想法吗?
答案 0 :(得分:1)
我刚刚检查了一些其他代码,并且我正在使用数组成功修补,但我使用的是资源的ID而不是名称。试试吧;而不是/ status / name使用/ status / id和数值。
r.text的结果是什么?这应该以新的,修补的形式返回配置,或者它将告诉你为什么补丁不起作用。