PATCH数据更新时计划程序/任务端点不确定

时间:2018-03-06 15:32:49

标签: microsoft-graph

我试图在图表的第1版上使用计划程序端点。我的主要目标是更新任务的状态,并决定它是“完成”还是“完成”。我做的第一件事就是从自己那里得到所有的任务。请参阅以下端点:

https://graph.microsoft.com/v1.0/me/planner/tasks






 function plannerCompleteTask(id, etag) {
                var specialEtag = etag.replace(/\\/g, "");
                var deferred = $q.defer();
                var endpoint = config.baseGraphApiUrl + 'planner/tasks/' + id;


            var data = {
                "percentComplete": "100"
            };

            var configRest = {
                headers: {
                    "content-type": "application/json",
                    "If-Match": specialEtag
                }
            }


            //"completedDateTime": "2018-02-15T07:56:25.7951905Z",

            $http.patch(endpoint, data, configRest).then(function (result) {
                console.log('log code', result);
                deferred.resolve(result.status);

            });

            return deferred.promise;
        }

我将创建以下请求

enter image description here

这将返回状态:204,没有内容。

如果我使用" percentageCompleted:0"重新运行查询。在身体中我得到以下错误。

enter image description here

此外,如果我尝试记录请求,我会从AJAX调用回来,它不会给我任何回复。好像没有错误处理被发回。我需要这个,因为我必须在我的应用程序中重新加载数据;但是现在我的代码在图表上的更改完成之前运行,但它返回204状态。

所以我无法找到通话何时不起作用或找出它何时完成。之前有人遇到过这个问题吗?

感谢阅读和任何帮助将不胜感激。干杯!

1 个答案:

答案 0 :(得分:0)

我认为你要找的是“首选”标题。如果在您的补丁请求中提供了“prefer”标头,其值为“return = representation”,则补丁的结果将是最终任务数据,包括具有200状态代码的新etag,而不是返回204的默认行为“否”内容“状态代码。

Planer中的写操作是异步的。因此,在可能的情况下,您应该始终根据使用prefer头的写操作结果更新本地数据,而不是再次读取它们。

在您的请求中,由于您在任务更新完成之前正在读取数据,因此基本上您正在更新要完成但未同时完成的任务的相同状态,这是冲突的原因。< / p>