2

将edx作为子系统

 3 years ago
source link: http://wwj718.github.io/post/edx/edx-as-subsystem/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

将edx作为子系统

2015-08-05

#需求描述 有一种需求可能蛮典型,将edx作为子系统,外部系统需要与edx通信,诸如取得学员的学习状况,学习成绩,个人信息

又或者需要从企业系统中将用户批量导入edx中

#思路 尽管我们可以通过写脚本来应对以上需求,但我更喜欢将edx视为一个独立/有应答能力的系统,它能够响应外部网站管理级别的请求,而不仅仅是普通用户级别,它与外部的通信都通过RESTful风格的API来做。如此一来edx就能作为子系统与企业其他系统友好协作

###流程 client携带令牌(access token)去访问edx系统,edx对其进行身份权限验证,通过的话,接受其请求。这些都是透明的,edx所采用的django-rest-framework框架对权限的控制设计得很棒

这方面的知识我在启用edx的API里谈到过

核心概念是oauth2和RESTful风格的API

edx内部已经有许多现成的api接口:学生相关的,课程内容相关的,注册课程相关的,等等,更多细节可以参考edx-platform-api

###扩展 为了实现我们自己的需求,现成的接口肯定是不够用的,我们需要扩展edx的api,我去年为了给手机端提供论坛接口,使用django来写,痛苦不堪,在此推荐大家使用django-rest-framework来为edx扩展接口,至于怎么做可以参考django-rest-framework

#举个栗子 我们就拿上头的用户批量导入为例

  • 首先建立个自己的django app,我将其起名为siteapi(站点管理级别的api接口)
  • 确定URI: siteapi/users
  • 写业务逻辑
  • client 携带access token往siteapi/users post用户数据(推荐使用json)
  • edx验证用户身份,导入用户,返回确认信息给client

文章作者 种瓜

上次更新 2015-08-05

edx
edx数据分析相关的项目 搭建远程会议系统(简单得集成到edx里)

加入我们 | 搜索本站 | RSS订阅 | Powered by Hugo | Theme - Even

© 2013 - 2022种瓜


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK