三项修习

接口约定

  • 使用https
  • restful风格
  • 用户端:https://{域名}/api/{接口版本号}/{resource}/{resource_id}/{sub_resource}/{sub_resource_id}/{action}?{query_string}
  • 管理端:https://{域名}/admin/api/{接口版本号}/{resource}/{resource_id}/{sub_resource}/{sub_resource_id}/{action}?{query_string}
  • 测试环境域名babieta.xivan.cn
  • 正式环境域名待定
  • 公共参数放在header,如userid,session_key,unionid,version等
  • resource: studies

接口



gcid算法

def gcid_hash_file(path):
    h = hashlib.sha1()
    size = os.path.getsize(path)
    psize = 0x40000
    while size / psize > 0x200 and psize < 0x200000:
        psize = psize << 1
    with open(path, 'rb') as stream:
        data = stream.read(psize)
        while data:
            h.update(hashlib.sha1(data).digest())
            data = stream.read(psize)
    return h.hexdigest()

GET /studies/auth/qiniu/tokens/<gcid>

name cname type Description
用途 获取七牛token
版本号 v1.0
gcid gcid

curl -XGET https://babieta.xivan.cn/api/v1.0/auth/qiniu/tokens/abc
返回数据:
name cname type Description
code int 返回码 0成功 非0失败
msg string 错误信息
token string 上传文件凭证(5分钟有效)
key string 上传文件key

{
    "code"0,
    "msg":"",
    "token":"xxxx",
    "key":"yyyy"
}

GET /studies/{studies_id}/contents

name cname type Description
用途 获取测试题
版本号 v1.0
studies_id express(表达训练)/soak(浸泡训练)/communication(交流训练)
请求数据:

query_string 参数/可选参数

name cname type Description
limit 数目 int 获取数量, 默认1
level 等级 int 等级
flag 标识 int 默认0.获取需要练习的列表, 1.获取当天已完成的列表

curl -i "https://babieta.xivan.cn/api/v1.0/studies/express/contents?limit=1&level=3" -H "userid:oslC94mGqAAEz6iWhKhL9dEY5l3o" -H "token:25e8ba0469c6f1c0c6dcd4fe952b8e4e"

wx.request({
      "url":"https://babieta.xivan.cn/api/v1.0/studies/express/contents?limit=1", 
      "method":"GET",
      "success": res =>{
        console.log(res)
      },
      "data":{limit:'1'},
      "dataType":"json", 
      "header": { "content-type":"application/x-www-form-urlencoded",
        "userid": "oslC94mGqAAEz6iWhKhL9dEY5l3o", "token":"25e8ba0469c6f1c0c6dcd4fe952b8e4e"},
      "complete": res => {
        console.log(res)
      }
    })
返回数据:
name cname type Description
code int 返回码 0成功 非0失败
msg string 错误信息
list array<object> 测试题列表
list[].object array<object> 测试题, 不同类型具体看下面定义

object->express_info(表达训练)

name cname type Description
id int id
title string 标题
cover_url int 单词图片
word_chi string 单词中文
audio_text string 语音文本
audio_url string 语音播放url

object->soak_info(浸泡训练)

name cname type Description
id int id
title string 标题
cover_url int 语音图片
audio_url string 语音播放url

object->communication_info(交流训练)

name cname type Description
id int id
title string 标题
audio_text string 语音文本
audio_url string 语音播放url

{
    "msg": "",
    "code": 0,
    "list": [{"id":1, "cover_url":"111", "audio_url":"222", "word_chi":"111", "audio_text":"333"}]
}

POST /studies/{studies_id}/contents/{contents_id}/report

name cname type Description
用途 上报修习结果
版本号 v1.0
studies_id express(表达训练)/soak(浸泡训练)/communication(交流训练)
contents_id 题目id
请求数据:

body 参数/可选参数 (get)

name cname type Description
duration 时长 int 时长(秒)
status 通过状态 int 默认1 通过, 0:不通过

curl -XPOST -i "https://babieta.xivan.cn/admin/api/v1.0/studies/express/contents/3" -H "Content-Type:application/json" -d '{"duration":"100"}' -H "userid:oslC94mGqAAEz6iWhKhL9dEY5l3o" -H "token:25e8ba0469c6f1c0c6dcd4fe952b8e4e"

返回数据:
name cname type Description
code int 返回码 0成功 非0失败
msg string 错误信息

GET /studies/communication/contents/<content_id>/sound_records

name cname type Description
用途 获取交流的录音列表
版本号 v1.0
content_id 题目id
请求数据:

query_string 参数/可选参数

name cname type Description
limit 数目 int 获取数量, 默认10

curl -i "https://babieta.xivan.cn/api/v1.0/studies/communication/contents/4/sound_records?limit=10" -H "userid:oslC94mGqAAEz6iWhKhL9dEY5l3o" -H "token:25e8ba0469c6f1c0c6dcd4fe952b8e4e"

wx.request({
      "url":"https://babieta.xivan.cn/api/v1.0/studies/communication/contents/4/sound_records", 
      "method":"GET",
      "success": res =>{
        console.log(res)
      },
      "data":{limit:'10'},
      "dataType":"json", 
      "header": { "content-type":"application/x-www-form-urlencoded",
        "userid": "oslC94mGqAAEz6iWhKhL9dEY5l3o", "token":"25e8ba0469c6f1c0c6dcd4fe952b8e4e"},
      "complete": res => {
        console.log(res)
      }
    })
返回数据:
name cname type Descriptio n
code int 返回码 0成功 非0失败
msg string 错误信息
list array<object> 录音列表
list[].id int 录音id
list[].audio_url string 录音链接
list[].audio_duration int 录音时长(秒)
list[].userid int 录音人id
list[].nickname int 录音人名
list[].avatar_url int 录音人头像
list[].praise_count int 点赞数
list[].praise_flag int 0:未点赞,1已点赞

{
    "msg": "",
    "code": 0,
    "list": [{"id":1, "audio_duration":111, "audio_url":"222", "user_name":"111", "user_portrait":"333", "praise_count":3}]
}

GET /studies/communication/contents/<content_id>/history_sound_records

name cname type Description
用途 获取交流的录音列表
版本号 v1.0
content_id 题目id
请求数据:

query_string 参数/可选参数

name cname type Description
limit 数目 int 获取每个contentid对应的录音数量, 默认10

curl -i "https://babieta.xivan.cn/api/v1.0/studies/communication/contents/1,2,3,4/history_sound_records?limit=10" -H "userid:oslC94mGqAAEz6iWhKhL9dEY5l3o" -H "token:25e8ba0469c6f1c0c6dcd4fe952b8e4e"

wx.request({
      "url":"https://babieta.xivan.cn/api/v1.0/studies/communication/contents/1,2,3,4/history_sound_records", 
      "method":"GET",
      "success": res =>{
        console.log(res)
      },
      "data":{limit:'10'},
      "dataType":"json", 
      "header": { "content-type":"application/x-www-form-urlencoded",
        "userid": "oslC94mGqAAEz6iWhKhL9dEY5l3o", "token":"25e8ba0469c6f1c0c6dcd4fe952b8e4e"},
      "complete": res => {
        console.log(res)
      }
    })
返回数据:
name cname type Descriptio n
code int 返回码 0成功 非0失败
msg string 错误信息
list array<object> 问题列表
list[] array<object> 录音列表
list[][].id int 录音id
list[][].audio_url string 录音链接
list[][].audio_duration int 录音时长(秒)
list[][].userid int 录音人id
list[][].nickname int 录音人名
list[][].avatar_url int 录音人头像
list[][].praise_count int 点赞数

{
    "msg": "",
    "code": 0,
    "list": [[{"id":1, "audio_duration":111, "audio_url":"222", "user_name":"111", "user_portrait":"333", "praise_count":3}, ...], [], [], []]
}

POST /studies/communication/contents/<content_id>/sound_records/commit

name cname type Description
用途 提交交流的录音
版本号 v1.0
content_id 题目id
请求数据:

body 参数/可选参数

name cname type Description
audio_gcid gcid int 音频内容md5后的字符串
audio_duration int 录音时长(秒)
返回数据:
name cname type Description
code int 返回码 0成功 非0失败
msg string 错误信息
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 接口约定 使用httpsrestful风格用户端:https://{域名}/api/{接口版本号}/{resour...
    宝宝爱樱花阅读 543评论 0 51
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵胜奥阅读 4,764评论 0 1
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,364评论 0 5
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,443评论 0 13
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 2,689评论 0 3