我们拥有的每门课程都有一个内部数据库 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,这样回调函数会更有用。