是否可以通过API将任务添加到任务中?
我正在查看API文档,甚至尝试了一些API本身的测试。我一直回来:
{
"data": {
"ID": null,
"objCode": "HOUR"
}
}
不是非常有帮助的回应。
我们目前正在使用API与我们的Git服务器集成,我们还希望能够在提交消息中包含数小时,以便我们可以在不中断开发流程的情况下跟踪我们的工作时间。我们并不关心特定用户的工作时间,而是关注获得完成任务的总开发时间。
答案 0 :(得分:0)
是的,您可以通过AtTask API添加小时数。使用URI看起来像这样。
/attask/api/v4.0/hour?sessionID=****&projectID=4f9afa8d0005ff481ff120f4328b312e&hours=5
看起来您可能正在尝试创建一个没有定义任何“小时”的小时。在AtTask中输入0小时(或null / undefined)时,它不会插入一小时,而是删除附加到同一对象的任何其他小时。
实施例: 您为项目A输入5个小时 然后返回并将项目A的5编辑为0小时
虽然这两个都是作为添加或编辑操作启动的,但它将删除项目A的小时条目。
我希望这会有所帮助。
答案 1 :(得分:0)
以下是使用C#
对我有用的内容[HttpGet]
public void AddHoursToProject()
{
try
{
var postData = new Dictionary<string, string>();
postData.Add("taskID", TestTask);
postData.Add("hours", "6");
var httpResponse = Post_HttpResponseMessage_FormUrlEncodedContent("v6.0/HOUR", postData);
}
catch (Exception ex)
{
}
private HttpResponseMessage Post_HttpResponseMessage_FormUrlEncodedContent(string taskToPerform, IEnumerable<KeyValuePair<string, string>> postData)
{
HttpResponseMessage responseMessage;
using (var apiManagementSystem = new HttpClient())
{
apiManagementSystem.BaseAddress = new Uri("https://xxx.preview.workfront.com/attask/api/");
apiManagementSystem.DefaultRequestHeaders.Clear();
var jsonMediaType = new MediaTypeWithQualityHeaderValue("application/json");
apiManagementSystem.DefaultRequestHeaders.Accept.Add(jsonMediaType);
apiManagementSystem.DefaultRequestHeaders.Add("SessionID", "xxxxxx");
HttpContent httpContent = new FormUrlEncodedContent(postData);
responseMessage = apiManagementSystem.PostAsync(taskToPerform, httpContent).Result;
}
return responseMessage;
}