1

是否可以通过 API 将时间添加到任务中?

我正在查看 API 文档,甚至对 API 本身进行了几次测试。我不断回来:

{
    "data": {
        "ID": null, 
        "objCode": "HOUR"
    }
}

不是一个非常有帮助的回应。

我们目前正在使用 API 与我们的 Git 服务器集成,我们还希望能够在我们的提交消息中包含小时数,以便我们可以跟踪我们的小时数而不会中断我们的开发流程。我们并不关心特定用户的工作时间,而是关心完成一项任务的总开发时间。

4

2 回答 2

0

是的,您可以通过 AtTask API 添加小时数。使用 URI 看起来像这样。

/attask/api/v4.0/hour?sessionID=****&projectID=4f9afa8d0005ff481ff120f4328b312e&hours=5

看来您可能正在尝试创建一个没有定义任何“小时”的小时。在 AtTask 中,当您输入 0 小时(或 null / undefined)时,它不会插入一个小时,而是删除附加到同一对象的任何其他小时。

示例:您为项目 A 输入 5 小时 然后返回并将项目 A 的 5 编辑为 0 小时

虽然这两者都是作为添加或编辑操作启动的,但它将删除项目 A 的小时条目。

我希望这有帮助。

于 2014-03-06T20:39:27.503 回答
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;
}
于 2017-02-16T14:38:15.353 回答