扇贝网 API v0.8

扇贝网 API 帮助第3方开发者访问扇贝网数据。

目前此套API仅仅能够被基于浏览器的扩展或者Bookmarklets使用,因为需要用户事先直接登录扇贝网。


基本概念:
  • Word: 一个英语单词。
  • Vocabulary: 关于某个单词的信息,包括单词本身,它的发音和释义。
  • Learning: 某个用户对于一个单词的学习记录,包括他对该词的熟悉程度,和复习次数。
  • Example: 用来示范特定词汇用法的例句及其释义。
  • Note: 任何关于特定词汇的额外信息,用来帮助更好的理解该词。
特殊符号:
  • {{}}: 表示一个变量,必须由应用提供
  • {}: 表示JSON格式的一个对象

API:查询单词

  • URL: http://www.shanbay.com/api/word/{ { word } }
  • 参数: { {word}}, 必须,查询参数
  • 返回值:
    1. 格式: JSON
    2. 返回例句:
      {"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 } }
    3. learning_id, 如果用户之前保存过该单词,那么就存在对应的词汇学习记录(Learning)实例,会返回它的id;注意词汇学习记录实例和词汇实例的id是不同的;如果没有相应词汇学习记录,那么这个返回值为0,同时应用可以提示用户添加该单词
    4. voc:词汇实例
    5. en_definitions: object, 一个Json Dictionary 对象,索引为词性,值为英语解释
    6. definition: string, 词汇的中文解释
    7. content: string, 词汇的内容,也就是单词本身
    8. content_id: int, 词汇实例的id
    9. content_type: vocabulary|sentence, 只可能为两个字符串值,'vocabulary'或者'sentence',目前尚不支持'sentence'
    10. pron:string, 用国际音标表示的单词发音
    11. audio:string, 词汇的音频文件

API:保存单词

  • URL: http://www.shanbay.com/api/learning/add/{ { word} }
  • 参数: { { word} } ,必须,待保存的单词
  • 返回值:
    1. 格式: JSON
    2. 返回learning_id:
      {"id": 15265195}
    3. id:如果一个单词成功保存,那么相应的词汇学习记录实例就会被创建,它的id会作为learning_id返回;如果失败,则返回值为0

API:获取词汇学习记录对应单词的例句(API最多返回两条例句)

  • URL: http://www.shanbay.com/api/learning/examples/{ { learning_id} }
  • 参数: { { learning_id} } ,必须,词汇学习记录实例的id
  • 返回值:
    1. 格式: JSON
    2. 返回例句:
      {"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": ""},{}]}
    3. example_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
      • -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
      • 0: 该单词尚未有例句
      • 1: 成功返回例句
    4. examples: Array, 例句对象数组
    5. id: 例句实例的id,
    6. username: 例句添加人的用户名,'system'表示该例句由系统添加,
    7. userid: 例句添加人的用户id,0表示该例句由系统添加,
    8. first: 例句中在单词之前的部分,
    9. mid: 单词或者其有效的变体,
    10. last: 例句中在单词之后的部分,
    11. translation: 例句的译文,
    12. version: 此为保留值,未来可能使用,现在请忽略
    13. likes: 喜欢该例句的用户数量
    14. unlikes: 不喜欢该例句的用户数量

API:添加例句

  • URL: http://www.shanbay.com/api/example/add/{ { learning_id} } ?sentence=&translation=
  • 参数:
    • { { learning_id} } ,必须,对应单词相应词汇学习记录实例的id
    • { { sentence} } ,必须,例句原文
    • { { translation} } ,必须,例句的中文译文
    • 注意:例句和译文的总长度不能超过300个字符,否则添加会失败。
  • 返回值:
    1. 格式: JSON
    2. 返回例句: {"example_status": 1, "example": {"username": "xiawinter", "version": 0, "last": "", "likes": 0, "unlikes": 0, "mid": "hack", "translation": "fanyi", "userid": 14, "id": 565622, "first": ""} }
    3. example_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
      • -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
      • 0: 例句或者译文的长度为0
      • 1: 例句添加成功
      • 100: 例句未包含指定原词,或者它的有效变体
      • 300: 例句及其译文总长超过300个字符
    4. example: 用Dictionary格式表示的多个例句实例,参见API:获取词汇学习记录对应单词的例句

API:添加笔记

  • URL: http://www.shanbay.com/api/note/add/{ { learning_id} } ?note=
  • 参数:
    • { { learning_id} } ,必须,对应单词相应词汇学习记录实例的id
    • { { note} } ,必须,待添加的笔记内容
    • 注意:笔记总长度不能超过300个字符,否则添加会失败。
  • 返回值:
    1. 格式: JSON
    2. 返回笔记: {"note": {"username": "xiawinter", "userid": 14, "content": "test", "unlikes": 0, "likes": 0, "id": 153121}, "note_status": 1}
    3. note_status: tinyint, 必须先检查这个值,然后才能继续解析其他返回内容
      • -1: 指定词汇学习记录实例不存在,或者用户无权查看其内容
      • 0: 笔记总长为0
      • 1: 笔记添加成功
      • 300: 笔记总长超过300个字符
    4. note: 用Dictionary格式表示的笔记实例
    5. id: 笔记实例的id,
    6. username: 笔记添加人的用户名,
    7. userid: 笔记添加人的用户id,
    8. content: 笔记内容
    9. likes: 喜欢该笔记的用户人数,如果笔记为新增,则该值为0
    10. unlikes: 不喜欢该笔记的用户人数,如果笔记为新增,则该值为0

API:获取用户信息

  • URL: http://www.shanbay.com/api/user/info/
  • 参数:
    • 该请求无需任何参数
  • 返回值:
    1. 格式: JSON
    2. 返回样例: {"username":"shanbay", "nickname":"bei bei", "userid":1, "result":1}
    3. result: int, 必须先检查这个值,然后才能继续解析其他返回内容
      • 0: 用户未授权
      • 1: 获取成功
    4. username: 扇贝登录帐号
    5. userid: 扇贝ID
    6. nickname: 用户昵称