【问题标题】:New Feature - Update Responses新功能 - 更新响应
【发布时间】:2015-09-11 20:30:49
【问题描述】:

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

【问题讨论】:

  • 你能分享一个你从批处理操作中得到的响应示例吗?
  • 更好的是,分享您的代码。在不知道自己在做什么的情况下很难排除故障。
  • 嘿,Jay,API 工作正常,我要求更新 API,不是帮助解决问题,但非常感谢提供帮助。
  • 只是为了澄清一下,在提出创建课程的请求时,您发送的是您在数据库中生成的 ID,对吗?并且,您是否在 id 字段中发送此 ID? o 你是怎么寄的?

标签: google-classroom


【解决方案1】:

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

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

【讨论】:

  • 别名 id 可能没问题,但我们已经在运行一个非常耗费人力的过程。对于 10,000 门课程和 50,000 名学生,同步所有数据需要一段时间,添加一组额外的课程阅读并不理想且效率低下。
  • Conent-Id 是个好主意,有什么关于如何使用 Classroom API 的想法吗?
  • 您是在使用客户端库,还是直接发出这些 HTTP 请求?
  • 我正在使用适用于 .net 的 Google Classroom API V1。
  • 我们实际上正在这里研究同样的问题:stackoverflow.com/questions/32637718/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
  • 2018-05-19
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多