使用ZenDesk Rest API(某些票务管理软件),我具有列出票证和创建新票证的功能。
以下是该方案:
在第一步,返回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请求在某种程度上不会刷新或使用旧数据,我不知道。
我需要使用新创建的记录返回新的更新数据。
答案 0 :(得分:0)
他们的支持团队为此提供了答案。
由于我使用Search
方法而不是Tickets
方法检索我的故障单(因为我想过滤我的结果),检索到的结果不会立即更新,因为它们会提醒他们的documentation:
注意:新的故障单,用户和其他资源可能需要几分钟才能编入索引以进行搜索。如果搜索结果中未显示新资源,请等待几分钟后重试。
因此,在创建新故障单后,它实际上已创建但未立即为搜索编制索引,这意味着在创建故障单后立即进行的Search
呼叫将不会考虑该新记录。
索引新记录所花费的时间不固定或可能已计算。