【问题标题】:how to update a ticket in Zammad via API如何通过 API 在 Zammad 中更新票证
【发布时间】:2020-06-05 12:34:57
【问题描述】:

我的目标是使用 API 在 Zammad 中创建票证,然后对其进行更新(用于。

此类基本任务的参考是here

我正在使用 Postman 发送请求。

我使用不记名令牌身份验证,令牌已为ticket.agent(他也是管理员)的用户生成。

我成功地通过发布请求来创建票证

https://myzammadinstance.com/api/v1/tickets

和这个身体:

{
    "title": "Ticket generated from API - my test",
    "group": "Users",
    "article": {
        "subject": "My Subject",
        "body": "My body",
        "type": "note",
        "internal": false
    },
    "customer": "my@email.address",
    "user": "my@email.address",
    "note": "my notes"
}

这成功创建了一张票(具有给定 ID,比如 1990)。

现在我想更新这张票,所以“从 API 回复”。

我发帖请求

https://myzammadinstance.com/api/v1/tickets

和这个身体:

{
  "id": 1990,
  "title": "updated title",
  "group": "Users",
  "state": "open",
  "customer_id": 12,
  "priority": "3 high",
  "article": {
    "subject": "some subject of update",
    "body": "some message of update"
  }
}

这会执行,但不会对我的票 1990 附加回复,但会生成一个新票(id 为 1991,标题为“更新的标题”)。

我不想创建新工单,只想回复现有工单。

我可能误解了什么,但我多次检查了文档和请求正文。

有人可以帮忙吗?

更新:如 cmets 所述,我似乎应该使用 https://myzammadinstance.com/api/v1/tickets/1990

但这不起作用:未创建新票但响应有错误:

{
    "error": "No route matches [POST] /api/v1/tickets/1990"
}

解决方案

问题在于PUTPOST,通过使用PUT 和此端点

https://myzammadinstance.com/api/v1/tickets/1990

我设法回复了票。

【问题讨论】:

  • 您不会使用此端点更新票证PUT /api/v1/tickets/{id} - docs.zammad.org/en/latest/api/ticket.html#update
  • 感谢您的回复。我可能不够专业,我应该如何解释{id}?我尝试使用PUT /api/v1/tickets/1990,但它回复“没有路由匹配 [POST] /api/v1/tickets/1990”。此外,为什么我应该在端点和正文中都使用 id?谢谢!
  • 我在问题中附加了一个 UPDATE 部分
  • 您是否将方法更改为PUT - 不知道为什么它会返回带有POST 的消息。我不拥有或曾经使用过此 API,我只是阅读了您附加的文档:D
  • 是的,我再次阅读文档得出了相同的结论。 PUT 是解决方案。谢谢!

标签: rest postman ticket-system


【解决方案1】:

要更新票证,您需要使用此端点:

PUT /api/v1/tickets/{id}

https://docs.zammad.org/en/latest/api/ticket.html#update

【讨论】:

    猜你喜欢
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多