【问题标题】:Why am I getting a 404 creating a link topic?为什么我会收到 404 创建链接主题?
【发布时间】:2014-01-14 19:37:10
【问题描述】:

我们正在尝试将课程内容从 LaunchPad 导入到特定模块中的 Desire2Learn。以下是我们认为需要发生的事情:

  1. 创建一个链接。

POST 到 /d2l/api/le/1.3/lti/link/6720 其中 6720 是组织 ID,它返回链接 ID。

这是成功的。

  1. 创建快速链接。

POST 到 /d2l/api/le/1.3/lti/quicklink/6720/228 228 是上面的链接 ID。

这是成功的。

  1. 创建链接主题。

POST 到 /d2l/api/le/1.3/6720/content/modules/638/structure/ 其中 638 是从 LTI 参数 custom_links_import_service_url 获取的父模块 ID,查询字符串参数 parentNode,并在快速链接调用的响应中使用 PublicUrl。

这会导致 404,根据文档,这表明存在 OU 或父模块 ID 问题。

感谢您对此提供的任何帮助。我在文档中找不到任何好的开发人员操作指南,只有 API 参考。

我在 stackoverlow 中尝试过其他建议,但他们没有帮助,例如:desire2learn api adding content 404 Posting Content to Desire2Learn 404 Error when trying to post a file topic

【问题讨论】:

  • 是您用于这些调用的组织单位 ID 6720 还是您从中获取 custom_links_import_service_url 和它的parentNode 查询字符串参数?

标签: desire2learn valence


【解决方案1】:

这个特定的调用似乎强制应用程序/json 的内容类型。我一直在使用的所有其他 API POST 都可以使用 text/plain。只是这条路线(到目前为止)会引发错误。

(我也不确定 404 是否是正确的错误。)

感谢 Viktor 的评论,是的,LTI 参数中的路由和其他参数都是正确的。

【讨论】:

  • 很高兴您已经解决了问题;感谢您对该电话的反馈。一些调用可能能够处理未明确键入为application\json 的 JSON 部分,但其他调用则无法处理。为了安全起见,您应该始终将 JSON 部分(全身或多部分身体部分)键入为 application\json
  • 至于为什么是404,这是一个很好的观点,并且很可能是后端服务实现的特性。如果 Web 服务在尝试接受您的请求参数并将它们绑定到数据对象以向下传递到底层服务处理层中的处理程序时发生错误,那么这可能会导致 Web 服务做出反应,就好像它找不到处理程序,这将导致 404 Not Found 错误。
猜你喜欢
  • 2018-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-17
相关资源
最近更新 更多