c# - TFS 2018 API:可以访问工作项但不能访问工作项 API 端点
问题描述
我创建了一个中间件应用程序,它将从 TFS 中提取工作项数据。
我能够使用工作项端点来做到这一点。
http://sampleserver:8080/tfs/sampleproject/_apis/wit/wiql?api-version=4.0/workitems?ids=1,2,3
现在,我还需要获取每个工作项的工作项链接。根据文档,我需要使用扩展项目访问工作项。但不幸的是,工作项端点似乎不起作用。
http://sampleserver:8080/tfs/sampleproject/_apis/wit/wiql?api-version=4.0/workitem/3
我在这里错过了什么吗?
解决方案
根据您的描述,看起来您只想要创建的 WorkItem 的 URL,这样任何人在单击 URL 时,都会打开创建的 Work Item。
https://tfsurl:8080/tfs/DefaultCollection/PatrickProject/_workitems/edit/172/
URL 应该是上述格式,这里 DefaultCollection 是集合名称,PatrickProject 是项目名称。在这种情况下,我使用了这个 url 并去掉了 id '172' 并使用了新创建的工作项的 ID。这将返回 URL 以转到工作项 HTML 页面。
所以它是一个固定的格式,如果你有 Newly Created WorkItem ID 和 collection name , project name ,你只需要按照上面的格式,改变工作项 ID 的最后一个值。就是这样,忽略您创建的工作项类型。
如果要使用代码执行此操作,请不要使用 Rest API,您需要使用客户端 API,示例代码段:
var tfsURI = new Uri("http://test:8080/tfs");
var networkCredential1 = new NetworkCredential("test", "test!");
ICredentials credential = (ICredentials)networkCredential1;
Microsoft.VisualStudio.Services.Common.WindowsCredential winCred = new Microsoft.VisualStudio.Services.Common.WindowsCredential(credential);
VssCredentials vssCredentials = new VssCredentials(winCred);
using (TfsTeamProjectCollection collection = new TfsTeamProjectCollection(tfsURI, vssCredentials))
{
collection.EnsureAuthenticated();
TswaClientHyperlinkService hyperlinkService =
collection.GetService<TswaClientHyperlinkService>();
String TFSurl = hyperlinkService.GetWorkItemEditorUrl(17648).ToString(); //17648 WorkItem ID
}
希望这可以帮助!
推荐阅读
- laravel - Laravel 8个工作没有调度
- c++builder - Setting the Context Menu CenterInWindow dynamically in C++Builder
- python-3.x - Trying to merge 2 dataframes but receiving value error of merging object and int32 columns
- javascript - Does the animation run always with the same speed?
- django - How do II get object with the the largest value of a certain field in my Django model objects?
- github - How to deploy that web dev project on GitHub which is already deployed on Heroku?
- java - Global exception handler never get called in micronaut 3 with project reactor
- powershell - Powershell通过VBScript - 用户名包含空格时环境变量路径终止
- android - Why is LazyColumn not scrollable using mouse but recycler view is?
- mysql - R dbplyr mysql column conversion