三項(xiàng)修習(xí)

接口約定

  • 使用https
  • restful風(fēng)格
  • 用戶端:https://{域名}/api/{接口版本號(hào)}/{resource}/{resource_id}/{sub_resource}/{sub_resource_id}/{action}?{query_string}
  • 管理端:https://{域名}/admin/api/{接口版本號(hào)}/{resource}/{resource_id}/{sub_resource}/{sub_resource_id}/{action}?{query_string}
  • 測(cè)試環(huán)境域名babieta.xivan.cn
  • 正式環(huán)境域名待定
  • 公共參數(shù)放在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
版本號(hào) v1.0
gcid gcid

curl -XGET https://babieta.xivan.cn/api/v1.0/auth/qiniu/tokens/abc
返回?cái)?shù)據(jù):
name cname type Description
code int 返回碼 0成功 非0失敗
msg string 錯(cuò)誤信息
token string 上傳文件憑證(5分鐘有效)
key string 上傳文件key

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

GET /studies/{studies_id}/contents

name cname type Description
用途 獲取測(cè)試題
版本號(hào) v1.0
studies_id express(表達(dá)訓(xùn)練)/soak(浸泡訓(xùn)練)/communication(交流訓(xùn)練)
請(qǐng)求數(shù)據(jù):

query_string 參數(shù)/可選參數(shù)

name cname type Description
limit 數(shù)目 int 獲取數(shù)量顷帖, 默認(rèn)1
level 等級(jí) int 等級(jí)
flag 標(biāo)識(shí) int 默認(rèn)0.獲取需要練習(xí)的列表听怕, 1.獲取當(dāng)天已完成的列表

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)
      }
    })
返回?cái)?shù)據(jù):
name cname type Description
code int 返回碼 0成功 非0失敗
msg string 錯(cuò)誤信息
list array<object> 測(cè)試題列表
list[].object array<object> 測(cè)試題, 不同類型具體看下面定義

object->express_info(表達(dá)訓(xùn)練)

name cname type Description
id int id
title string 標(biāo)題
cover_url int 單詞圖片
word_chi string 單詞中文
audio_text string 語音文本
audio_url string 語音播放url

object->soak_info(浸泡訓(xùn)練)

name cname type Description
id int id
title string 標(biāo)題
cover_url int 語音圖片
audio_url string 語音播放url

object->communication_info(交流訓(xùn)練)

name cname type Description
id int id
title string 標(biāo)題
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
用途 上報(bào)修習(xí)結(jié)果
版本號(hào) v1.0
studies_id express(表達(dá)訓(xùn)練)/soak(浸泡訓(xùn)練)/communication(交流訓(xùn)練)
contents_id 題目id
請(qǐng)求數(shù)據(jù):

body 參數(shù)/可選參數(shù) (get)

name cname type Description
duration 時(shí)長(zhǎng) int 時(shí)長(zhǎng)(秒)
status 通過狀態(tài) int 默認(rèn)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"

返回?cái)?shù)據(jù):
name cname type Description
code int 返回碼 0成功 非0失敗
msg string 錯(cuò)誤信息

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

name cname type Description
用途 獲取交流的錄音列表
版本號(hào) v1.0
content_id 題目id
請(qǐng)求數(shù)據(jù):

query_string 參數(shù)/可選參數(shù)

name cname type Description
limit 數(shù)目 int 獲取數(shù)量钉蒲, 默認(rèn)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)
      }
    })
返回?cái)?shù)據(jù):
name cname type Descriptio n
code int 返回碼 0成功 非0失敗
msg string 錯(cuò)誤信息
list array<object> 錄音列表
list[].id int 錄音id
list[].audio_url string 錄音鏈接
list[].audio_duration int 錄音時(shí)長(zhǎng)(秒)
list[].userid int 錄音人id
list[].nickname int 錄音人名
list[].avatar_url int 錄音人頭像
list[].praise_count int 點(diǎn)贊數(shù)
list[].praise_flag int 0:未點(diǎn)贊们镜,1已點(diǎn)贊

{
    "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
用途 獲取交流的錄音列表
版本號(hào) v1.0
content_id 題目id
請(qǐng)求數(shù)據(jù):

query_string 參數(shù)/可選參數(shù)

name cname type Description
limit 數(shù)目 int 獲取每個(gè)contentid對(duì)應(yīng)的錄音數(shù)量缴渊, 默認(rèn)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)
      }
    })
返回?cái)?shù)據(jù):
name cname type Descriptio n
code int 返回碼 0成功 非0失敗
msg string 錯(cuò)誤信息
list array<object> 問題列表
list[] array<object> 錄音列表
list[][].id int 錄音id
list[][].audio_url string 錄音鏈接
list[][].audio_duration int 錄音時(shí)長(zhǎng)(秒)
list[][].userid int 錄音人id
list[][].nickname int 錄音人名
list[][].avatar_url int 錄音人頭像
list[][].praise_count int 點(diǎn)贊數(shù)

{
    "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
用途 提交交流的錄音
版本號(hào) v1.0
content_id 題目id
請(qǐng)求數(shù)據(jù):

body 參數(shù)/可選參數(shù)

name cname type Description
audio_gcid gcid int 音頻內(nèi)容md5后的字符串
audio_duration int 錄音時(shí)長(zhǎng)(秒)
返回?cái)?shù)據(jù):
name cname type Description
code int 返回碼 0成功 非0失敗
msg string 錯(cuò)誤信息
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末仑乌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子亮瓷,更是在濱河造成了極大的恐慌琴拧,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘱支,死亡現(xiàn)場(chǎng)離奇詭異蚓胸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)除师,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門沛膳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汛聚,你說我怎么就攤上這事锹安。” “怎么了倚舀?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵叹哭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我痕貌,道長(zhǎng)话速,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任芯侥,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柱查。我一直安慰自己廓俭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布唉工。 她就那樣靜靜地躺著研乒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪淋硝。 梳的紋絲不亂的頭發(fā)上雹熬,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音谣膳,去河邊找鬼竿报。 笑死,一個(gè)胖子當(dāng)著我的面吹牛继谚,可吹牛的內(nèi)容都是我干的烈菌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼花履,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼芽世!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起诡壁,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤济瓢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后妹卿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旺矾,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年纽帖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宠漩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡懊直,死狀恐怖扒吁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情室囊,我是刑警寧澤雕崩,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站融撞,受9級(jí)特大地震影響盼铁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尝偎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一饶火、第九天 我趴在偏房一處隱蔽的房頂上張望鹏控。 院中可真熱鬧,春花似錦肤寝、人聲如沸当辐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽缘揪。三九已至,卻和暖如春义桂,著一層夾襖步出監(jiān)牢的瞬間找筝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工慷吊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留袖裕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓罢浇,卻偏偏與公主長(zhǎng)得像陆赋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嚷闭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 接口約定 使用httpsrestful風(fēng)格用戶端:https://{域名}/api/{接口版本號(hào)}/{resour...
    寶寶愛櫻花閱讀 544評(píng)論 0 51
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵勝奧閱讀 4,823評(píng)論 0 1
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,383評(píng)論 0 5
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,456評(píng)論 0 13
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,699評(píng)論 0 3