我正试图通过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号。
答案 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也有帮助。