-
Notifications
You must be signed in to change notification settings - Fork 2
HTTP API
fushang318 edited this page Jan 7, 2014
·
33 revisions
四叶草知识手册服务端需要提供的 HTTP API
1 用户登录(登陆成功时返回的信息包括用户姓名头像信息) 2 用户登出 3 知识网列表(切换知识网时的列表) 4 用户某个知识网的经验状态 5 用户某个知识单元网状图 6 知识单元下的节点列表 7 随机获得一个节点下的一个练习题 7.1 随机获得一个节点下的13个练习题 8 练习失败 9 练习成功
url
/account/sign_in
method
post
params
user[login] # admin@edu.dev
user[password] # 1234
response
if status == 200
{
:id => user.id,
:name => user.name,
:login => user.login,
:email => user.email,
:avatar => user.avatar.url
}
end
if status == 401
{:sign_in => 'failure'}
end
url
/account/sign_out
method
get
response
if status == 200
{:sign_out => "success"}
end
url
/knowledge_nets/list
method
get
response
if status == 200
[
{
id => "english",
:name => "初级英语"
},
...
]
end
获取当前登陆用户的某一个知识网的经验状态
url
/knowledge_nets/:id/exp_info
method
get
response
{
:level => 1,
:level_up_exp_num => 30,
:exp_num => 10
}
根据该API获取的数据,就可以显示出当前登陆用户可以看到的知识单元网状图
包括单元是否解锁信息,是否学习信息
url
/knowledge_nets/:id/sets
method
get
response
{
:sets => [
{
:id => set.id,
:name => set.name,
:icon -> set.icon,
:deep => set.deep
:is_unlocked => true,
:is_learned => true
},
...
],
:checkpoints => [
{
:id => checkpoint.id,
:learned_sets => ["set-1","set-2"],
:is_unlocked => true,
:is_learned => true
},
...
],
:relations => [
{
:parent => "set-1",
:child => "set-2"
},
{
:parent => "set-2",
:child => "checkpoint-1"
},
...
]
}
获取显示当前登陆用户可以看到的某个知识单元下的知识节点列表数据 包括单元是否解锁信息,是否学习信息
url
/knowledge_nets/:net_id/knowledge_sets/:id/nodes
method
get
response
{
:nodes => [
{
:id => node.id,
:name => node.name,
:desc => node.desc,
:required => node.required,
:is_unlocked => true,
:is_learned => true
},
...
],
:relations => [
{
:parent => "node-31",
:child => "node-32"
},
............
]
}
url
/knowledge_nets/:net_id/knowledge_nodes/:id/get_random_question
method
get
params
except_ids "id1,id2,id3"
response
{
:node_id => "node-31",
:id => question.id,
:kind => question.kind,
:content => question.content,
:choices => [
"",
"",
"",
""
],
:answer => question.answer
}
url /knowledge_nets/:net_id/knowledge_nodes/:id/get_random_questions method get response
[
{
:node_id => "node-31",
:id => question.id,
:kind => question.kind,
:content => question.content,
:choices => [
"",
"",
"",
""
],
:answer => question.answer
},
...
]
练习失败目前没有任何数据操作,暂时不需要提供 HTTP API
url
/knowledge_nets/:net_id/knowledge_nodes/:id/test_success
method
POST
response
{
:add_exp_num => num, # 本次练习获取的经验值
:history_info => [1, 2, 3, 4, 5] # 最近五天每天获取的经验值
}