0

我们拥有的每门课程都有一个内部数据库 ID。使用批处理功能创建课程时,返回的信息没有给我们任何方法来获取此 ID,因此我们无法更新我们的数据库并让它知道课程已创建。

出于同样的原因更新删除响应也很方便。

一批删除的响应如下所示:

--batch_123456
{}
--batch_123456
--batch_123456
{}
--batch_123456
--batch_123456
{}
--batch_123456

如果它们都成功,那么这并不是一个真正的问题,但如果出现问题,则无法分辨哪些被删除,哪些未被删除,因为根据 API:

“服务器可以按任何顺序执行您的调用。不要指望它们按照您指定的顺序执行。”

一条简单的消息说“课程 #123 已被删除”将非常有帮助。这样我就可以编写回调代码以使用 ID 更新数据库

对于课程创建,响应如下所示:

--batch_123456
{
"id": "208571459",
"name": "***",
"section": "***",
"ownerId": "123456",
"creationTime": "2015-09-14T13:13:59.622Z",
"updateTime": "2015-09-14T13:14:02.820Z",
"enrollmentCode": "***",
"courseState": "PROVISIONED",
"alternateLink": "***"
}
--batch_123456

为了节省空间,我只回复了一个。ID 是课程的新 GoogleID,我们实际发送的与我们数据库中的记录相对应的 ID 不会被返回。所以我们必须使用其他数据的组合(ownerID + name)来获取记录并更新它,但这并不理想,可能并不适合所有人。再次添加发送到响应中的所有信息将非常有帮助,因此我们可以正确使用回调。

我还想添加更有用的特定信息,也应该添加到所有错误消息中。事实上,每个批处理响应都应该有某种 ID,这样回调函数会更有用。

4

1 回答 1

1

正如文档中简要提到的,您可以Courses.id在创建课程时将别名传递给,以便在创建课程时为其分配别名。别名可以包含您的课程内部标识符,并且可以在以后的请求中使用。

或者,可以为批处理中的每个请求分配一个唯一的Content-ID标头,该标头将在响应中返回。许多客户端库为设置和获取这些 ID 提供内置支持。

于 2015-09-15T14:12:10.673 回答