是的,這是正確的做法。
簡單的C#代碼發送REST API:
String MyURI = "[REST API URL]";
WebRequest WReq = WebRequest.Create(MyURI);
WReq.Credentials =
new NetworkCredential("[user name]", "[password]", "[domain]");
WebResponse response = WReq.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
// Get the stream containing content returned by the server.
Stream dataStream = response.GetResponseStream();
// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(dataStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();
// Display the content.
Console.WriteLine(responseFromServer);
在另一方面,你可以run the query with WIQL string。
關於獲取存儲查詢的WIQL字符串,可以使用TFS .net客戶端API。
NetworkCredential cred = new NetworkCredential("[user name]", "[password]", "[domain]");
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("[collection URL"), cred);
tpc.EnsureAuthenticated();
WorkItemStore wis = tpc.GetService(typeof(WorkItemStore)) as WorkItemStore;
QueryHierarchy queryRoot = wis.Projects["[team project]"].QueryHierarchy;
QueryFolder queryFolder = queryRoot["Shared Queries"] as QueryFolder;
QueryDefinition qd = queryFolder["PBIS"] as QueryDefinition;
string tt = qd.QueryText;
關於與Extended Client package電話查詢REST API,你可以參考這個簡單的代碼:
var u = new Uri("[collection url]");
VssCredentials c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.WindowsCredential(new NetworkCredential("v-stache", "[email protected]", "fareast")));
var connection = new VssConnection(u, c);
var workitemClient = connection.GetClient<WorkItemTrackingHttpClient>();
var result = workitemClient.QueryByWiqlAsync(new Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.Wiql() { Query = "select[System.Id] from WorkItems where [System.TeamProject] = 'ScrumStarain2' and [System.WorkItemType] = 'Product Backlog Item' and [System.State] <> ''" }, "ScrumStarain2").Result;
我們使用TFS .NET客戶端API,但它似乎不再可用在2015年。我們與2015年的CI只建立代碼,但最終會丟失衛星組件。 – Samuel
@Samuel TFS客戶端API仍然適用於2015年,您可以爲您的問題打開新的線程。 –
@samuel,2015年的客戶端API作爲「Team Foundation Server擴展API」在Nuget上提供......只需將其添加到您的項目中即可。 –