Итак, я пишу приложение C#.NET, которое должно иметь возможность считывать исторические данные из Rally. В частности, мне нужно получить общую оценку плана для данного выпуска для каждого из первых 7 дней выпуска.
Я читал, что есть два основных способа сделать это; через историю изменений или через Lookback API и с помощью POST. Я решил, что LBAPI будет чище и надежнее, поэтому я пошел по этому пути. К сожалению, я никогда раньше не работал с POST, поэтому не совсем уверен, что делаю.
Вот что я придумал до сих пор. Я чувствую, что либо близок и упускаю что-то ослепительно очевидное, либо я совершенно не в себе:
string uri = @"https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/14457696030/artifact/snapshot/query.js";
DynamicJsonObject data = new DynamicJsonObject();
data["find"] = new DynamicJsonObject();
data["find"]["_ProjectHierarchy"] = 14457702297;
data["find"]["_TypeHierarchy"] = "HierarchicalRequirement";
data["find"]["Children"] = null;
data["find"]["__At"] = "2014-02-02T00Z%22";
data["fields"] = new string[] { "PlanEstimate", "ObjectID", "Name" };
DynamicJsonObject results = API.post(uri, data);
Когда я использую скомпилированный URL-адрес в веб-браузере, я получаю правильные данные:
https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/14457696030/artifact/snapshot/query.js?find={%22_ProjectHierarchy%22:14457702297,%22_TypeHierarchy%22:%22HierarchicalRequirement%22,%22Children%22:null,%22__At%22:%222014-02-02T00Z%22}&fields=[%22ObjectID%22,%22Name%22,%22PlanEstimate%22]&start=0
Когда я использую приведенный выше код С# и вызываю:
DynamicJsonObject results = API.post(uri, data);
Я получаю сообщение WebException: "Удаленный сервер вернул ошибку: (405) Метод не разрешен." что звучит почти так, как будто я даже не могу использовать этот метод публикации с самого начала.
Мы будем очень признательны за любые рекомендации.