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

时间:2015-10-26 11:21:44

标签: c# .net rest zendesk

使用ZenDesk Rest API(某些票务管理软件),我具有列出票证和创建新票证的功能。

以下是该方案:

  1. GET门票;
  2. 创建新票证;
  3. 再次获得门票(并在网格中显示);
  4. 在第一步,返回20张票。在第3步,返回相同的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请求在某种程度上不会刷新或使用旧数据,我不知道。

    我需要使用新创建的记录返回新的更新数据。

1 个答案:

答案 0 :(得分:0)

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

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

  

注意:新的故障单,用户和其他资源可能需要几分钟才能编入索引以进行搜索。如果搜索结果中未显示新资源,请等待几分钟后重试。

因此,在创建新故障单后,它实际上已创建但未立即为搜索编制索引,这意味着在创建故障单后立即进行的Search呼叫将不会考虑该新记录。

索引新记录所花费的时间不固定或可能已计算。