扇贝网 API v0.8
扇贝网 API 帮助第3方开发者访问扇贝网数据。
目前此套API仅仅能够被基于浏览器的扩展或者Bookmarklets使用,因为需要用户事先直接登录扇贝网。
基本概念:
- Word: 一个英语单词。
- Vocabulary: 关于某个单词的信息,包括单词本身,它的发音和释义。
- Learning: 某个用户对于一个单词的学习记录,包括他对该词的熟悉程度,和复习次数。
- Example: 用来示范特定词汇用法的例句及其释义。
- Note: 任何关于特定词汇的额外信息,用来帮助更好的理解该词。
- {{}}: 表示一个变量,必须由应用提供
- {}: 表示JSON格式的一个对象
API:查询单词
- URL: http://www.shanbay.com/api/word/{ { word } }
- 参数: { {word}}, 必须,查询参数
- 返回值:
- 格式: JSON
- 返回例句:
{"learning_id": 15265195, "voc": {"en_definitions": {"v": ["cut with a hacking tool", "be able to manage or manage successfully", "cut away"], "n": ["one who works hard at boring tasks", "a politician who belongs to a small clique that controls a political party for private rather than public ends", "a mediocre and disdained writer"]}, "definition": "n. \u5288, \u780d, \u51fa\u79df\u9a6c\u8f66\nv. \u5288, \u780d, \u5e72\u54b3", "conent_id": 13686, "content": "hack", "pron": "hæk", "content_type": "vocabulary", "id": 13686 } } - learning_id, 如果用户之前保存过该单词,那么就存在对应的词汇学习记录(Learning)实例,会返回它的id;注意词汇学习记录实例和词汇实例的id是不同的;如果没有相应词汇学习记录,那么这个返回值为0,同时应用可以提示用户添加该单词
- voc:词汇实例
- en_definitions: object, 一个Json Dictionary 对象,索引为词性,值为英语解释
- definition: string, 词汇的中文解释
- content: string, 词汇的内容,也就是单词本身
- content_id: int, 词汇实例的id
- content_type: vocabulary|sentence, 只可能为两个字符串值,'vocabulary'或者'sentence',目前尚不支持'sentence'
- pron:string, 用国际音标表示的单词发音
- audio:string, 词汇的音频文件
API:保存单词
- URL: http://www.shanbay.com/api/learning/add/{ { word} }
- 参数: { { word} } ,必须,待保存的单词
- 返回值:
- 格式: JSON
- 返回learning_id:
{"id": 15265195} - id:如果一个单词成功保存,那么相应的词汇学习记录实例就会被创建,它的id会作为learning_id返回;如果失败,则返回值为0
API:获取词汇学习记录对应单词的例句(API最多返回两条例句)
- URL: http://www.shanbay.com/api/learning/examples/{ { learning_id} }
- 参数: { { learning_id} } ,必须,词汇学习记录实例的id
- 返回值:
- 格式: JSON
- 返回例句:
{"examples_status": 1, "examples": [{"username": "system", "version": 0, "last": " down the saplings.", "likes": 3, "unlikes": 0, "mid": "hacked", "translation": "\u628a\u5c0f\u6811\u780d\u5012", "userid": 0, "id": 239779, "first": ""},{}]} - example_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
- -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
- 0: 该单词尚未有例句
- 1: 成功返回例句
- examples: Array, 例句对象数组
- id: 例句实例的id,
- username: 例句添加人的用户名,'system'表示该例句由系统添加,
- userid: 例句添加人的用户id,0表示该例句由系统添加,
- first: 例句中在单词之前的部分,
- mid: 单词或者其有效的变体,
- last: 例句中在单词之后的部分,
- translation: 例句的译文,
- version: 此为保留值,未来可能使用,现在请忽略
- likes: 喜欢该例句的用户数量
- unlikes: 不喜欢该例句的用户数量
API:添加例句
- URL: http://www.shanbay.com/api/example/add/{ { learning_id} } ?sentence=&translation=
- 参数:
- { { learning_id} } ,必须,对应单词相应词汇学习记录实例的id
- { { sentence} } ,必须,例句原文
- { { translation} } ,必须,例句的中文译文
- 注意:例句和译文的总长度不能超过300个字符,否则添加会失败。
- 返回值:
- 格式: JSON
- 返回例句:
{"example_status": 1, "example": {"username": "xiawinter", "version": 0, "last": "", "likes": 0, "unlikes": 0, "mid": "hack", "translation": "fanyi", "userid": 14, "id": 565622, "first": ""} }
- example_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
- -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
- 0: 例句或者译文的长度为0
- 1: 例句添加成功
- 100: 例句未包含指定原词,或者它的有效变体
- 300: 例句及其译文总长超过300个字符
- example: 用Dictionary格式表示的多个例句实例,参见API:获取词汇学习记录对应单词的例句
API:添加笔记
- URL: http://www.shanbay.com/api/note/add/{ { learning_id} } ?note=
- 参数:
- { { learning_id} } ,必须,对应单词相应词汇学习记录实例的id
- { { note} } ,必须,待添加的笔记内容
- 注意:笔记总长度不能超过300个字符,否则添加会失败。
- 返回值:
- 格式: JSON
- 返回笔记:
{"note": {"username": "xiawinter", "userid": 14, "content": "test", "unlikes": 0, "likes": 0, "id": 153121}, "note_status": 1}
- note_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
- -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
- 0: 笔记总长为0
- 1: 笔记添加成功
- 300: 笔记总长超过300个字符
- note: 用Dictionary格式表示的笔记实例
- id: 笔记实例的id,
- username: 笔记添加人的用户名,
- userid: 笔记添加人的用户id,
- content: 笔记内容
- likes: 喜欢该笔记的用户人数,如果笔记为新增,则该值为0
- unlikes: 不喜欢该笔记的用户人数,如果笔记为新增,则该值为0
API:获取用户信息
- URL: http://www.shanbay.com/api/user/info/
- 参数:
- 该请求无需任何参数
- 返回值:
- 格式: JSON
- 返回样例:
{"username":"shanbay", "nickname":"bei bei", "userid":1, "result":1}
- result: int, 必须先检查这个值,然后才能继续解析其他返回内容
- 0: 用户未授权
- 1: 获取成功
- username: 扇贝登录帐号
- userid: 扇贝ID
- nickname: 用户昵称
