为Open edX移动端实现选课功能
文章目录
Open edX移动端进展缓慢,几个月前的坑也不见填好。
现有的后台接口已经满足选课要求了,移动端还没更上,只能自己动手丰衣足食了,在此演示如何使用这些接口实现选课功能(使用工具httpie(把它理解为一个更先进的curl就行)做演示)
列出所有课程
http http://LMS_HOST/api/courses/v1/courses/
|
|
值得关注的字段是course_id
更多的字段信息参考文档 :courses-api-courses-resource
用户注册课程(选课)
文档参考:View a User’s Enrollments or Enroll a User in a Course
以下是命令行演示
http POST "http://LMS_HOST/api/enrollment/v1/enrollment" course_details:=@course_details.json "Authorization: Bearer user_access_token"
其中必要的POST参数为course_details,文档中的其他参数可选,请求参数举例:
|
|
如果后端返回200,则表示用户注册课程成功
当然你也可以在浏览器中直接访问"http://LMS_HOST/api/enrollment/v1/enrollment
如果你想进一步拓展后端的RESTful接口,可以参考我的这个项目:edx_siteapi
坑
移动端已经有选课功能了,如果你决定直接使用既有功能,可能需要做个调整,请求http://LMS_HOST/api/courses/v1/courses/?username=mooctest&mobile=true&page=1
会报403,进入后台将CourseListView里的username = self.request.query_params.get('username', self.request.user.username)
改为self.request.user.username
文章作者 种瓜
上次更新 2016-08-15