新功能 - 更新响应

时间:2015-09-11 20:30:49

标签: google-classroom

我们拥有的每门课程都有一个内部数据库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对应于我们的DB中的记录不会被返回。因此,我们必须使用其他数据(ownerID + name)的组合来获取记录并对其进行更新,但这并不理想,并且可能不适用于所有人。再次添加所有发送到响应中的信息将非常有用,因此我们可以正确使用回调。

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

1 个答案:

答案 0 :(得分:1)

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

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