无法通过api创建课程

时间:2013-08-22 19:58:37

标签: desire2learn valence

我正试图通过pi d2l中的api创建一个学期的课程。我的程序和“入门”应用程序都出现404 not found错误。我正在拨打的电话是/d2l/api/lp/1.0/courses/使用帖子。我传递了以下JSON对象:

{
    "Name": "COMM291 - Test A",
    "Code": "C-COMM291",
    "Path": "/enforced/C-COMM291/",
    "CourseTemplateId": 20992,
    "SemesterId": 20993,
    "StartDate": "2013-08-22T19:41:14.0983532Z",
    "EndDate": "2013-08-27T19:41:14.0993532Z",
    "LocaleId": 4105,
    "ForceLocale": false,
    "ShowAddressBook": false
}

我还尝试将null传递给表示接受空值的字段,但没有运气。课程模板和学期ID是正确的 - 我已经检查了它们是否存在,我已经注册了它们,并且我使用了正确的ID号。

3 个答案:

答案 0 :(得分:0)

尝试将开始日期和结束日期的精度降低到最终点后的三位小数(例如,"2013-08-22T19:41:14.0983532Z"变为"2013-08-22T19:41:14.098Z")。

答案 1 :(得分:0)

如果您的组织被配置为自动强制执行并生成课程产品的路径,那么您根本不应在CreateCourseOffering块中提供一个。以下结构适用于我们的测试实例:注意路径的空字符串(不应该为空,但我相信是一个空字符串):

{ "Name": "Extensibility 104", 
  "Code": "EXT-104", 
  "Path": "", 
  "CourseTemplateId": 8082, 
  "SemesterId": 6984, 
  "StartDate": "2013-09-01T19:41:14.098Z", 
  "EndDate": "2013-12-27T19:41:14.098Z",
  "LocaleId": 1, 
  "ForceLocale": false, 
  "ShowAddressBook": false }

另外需要注意的是,如果您的CreateCourse表单没有表单元素来提供学期ID,那么您的API调用应该为该属性传递null。

答案 2 :(得分:0)

我发现我的问题的一部分是调用,如果我将它更改为/d2l/api/lp/1.3/courses/而不是1.0它可以工作,(1.0将起作用,但似乎你只能传递null本学期)。 日期也很挑剔,确实更喜欢毫秒到小数点后3位。 然后为LocaleId传递null也有帮助。