AtTask API添加时间

时间:2014-02-20 20:03:21

标签: api rest attask

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

我正在查看API文档,甚至尝试了一些API本身的测试。我一直回来:

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

不是非常有帮助的回应。

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

2 个答案:

答案 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;
}