连续休息请求不带来更新的数据

Consecutive Rest request doesn't bring updated data

使用ZenDesk Rest API(一些工单管理软件),我有列出工单和创建新工单的功能。

场景如下:

  1. 获取门票;
  2. 创建新工单;
  3. 再次获取门票(并在网格中显示);

第一步,假设 return 编辑了 20 张票。在第 3 步,return 编辑了相同的 20 张票。过了一会儿,请求带来了 21 张预期的票。

这是一些代码:

public JObject GetTicketsByUserEmail(string userEmail)
{
    var client = new RestClient(RequestUri);
    client.Authenticator = new HttpBasicAuthenticator(Username, Password);
    string resource = "/api/v2/search.json?query=type:ticket tags:" + userEmail;
    var request = new RestRequest(resource, Method.GET);
    client.AddDefaultHeader("Accept", "application/json");
    request.Parameters.Clear();
    request.RequestFormat = DataFormat.Json;

    IRestResponse response = client.Execute(request);
    var content = response.Content;

    client.Execute(request);

    JObject jObject = JObject.Parse(content);

    return jObject;
}

以上工作正常,按预期带来门票。创建一个新的后,我可以在 ZenDesk 的 Web 应用程序上看到新创建的工单。

上面的代码又是 运行,但它不会为 .Net 代码带来新的票证,尽管 ZenDesk 门户上存在!因此,向用户显示的列表已刷新,但不会向他显示他刚刚创建的工单。

嗯,因为我可以在 ZenDesk 门户上看到新票,我猜 .Net 端的 Rest 请求不知何故没有刷新或使用旧数据,我不知道。

我需要 return 新的更新数据,其中包含新创建的记录。

他们的支持团队对此提供了答案。

由于我使用他们的 Search 方法而不是 Tickets 方法检索我的门票(因为我想过滤我的结果),检索到的结果不会立即更新,因为它们提醒他们 documentation:

Note: It can take up to a few minutes for new tickets, users, and other resources to be indexed for search. If new resources don't appear in your search results, wait a few minutes and try again.

因此,在创建新工单后,它实际上已创建但不会立即编入索引以供搜索,这意味着在工单创建后立即进行的 Search 调用不会考虑该新记录。

索引新记录所需的时间未固定或可能未计算。