AtTask API添加小时数

AtTask API添加小时数,api,rest,attask,Api,Rest,Attask,是否可以通过API向任务添加小时数 我浏览了API文档,甚至对API本身进行了一些测试。我不断回来: { "data": { "ID": null, "objCode": "HOUR" } } 这不是一个非常有用的回答 我们目前正在使用API与我们的Git服务器集成,我们还希望能够在提交消息中包含小时数,这样我们就可以在不中断开发流程的情况下跟踪小时数。我们关心的不是特定用户的小时数,而是任务的总开发时间。是的,您可以通过AtTask API添

是否可以通过API向任务添加小时数

我浏览了API文档,甚至对API本身进行了一些测试。我不断回来:

{
    "data": {
        "ID": null, 
        "objCode": "HOUR"
    }
}
这不是一个非常有用的回答


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

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

/attask/api/v4.0/hour?sessionID=****&projectID=4f9afa8d0005ff481ff120f4328b312e&hours=5
您可能试图创建一个小时,但没有定义任何小时。在AtTask中,当您输入小时数0或null/未定义时,它不会插入小时数,而是删除附加到同一对象的任何其他小时数

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

当这两个都作为添加或编辑操作启动时,它将删除项目A的小时条目


我希望这能有所帮助。

以下是我使用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;
}

这是GET请求吗?当我尝试您描述的/attask/api/v4.0/hour?sessionID=*********&projectID=******&hours=4时,我得到{错误:{class:java.lang.UnsupportedOperationException,消息:您必须使用405方法不允许状态代码指定操作}}。我还尝试了与PUT和POST请求相同的方法,都返回了411所需的长度。如果你正在做类似的事情,你可以在url中添加method=post,我相信这会解决你的问题。这将为会话ID所属的用户增加小时数。为了代表其他人添加小时数,您需要一个API密钥和小时数所属的所有者id,至少我是这样做的。这是C代码。postData.AddownerID,OwnerID;postData.AddapiKey,ApiKey;