Skip to content
easyrequest edited this page Feb 17, 2014 · 31 revisions

Welcome to the easyrequest-docs wiki!

API

创建引擎

URL:

  • http://api.easyrequest.io/engine/create/:name

Method:

  • POST

参数:

  • appkey
    • 类型: string
    • 必选: true
    • 描述: 注册时发送到邮箱的身份标识
  • name
    • 类型: string
    • 必选: true
    • 描述: 引擎名称,可由字母和数字组成. e.g: myengine1
  • type
    • 类型: string
    • 必选: true
    • 可选值: bool 或者 pref
    • 描述: 引擎类型,bool类型为布尔值引擎,User不需要为Item打分;pref类型为分值型引擎,User需要对Item打分.

返回方式:

  • JSON

示例:

  • http://api.easyrequest.io/engine/create/myengine1?appkey=yourappkey&type=pref
    • 创建一个名称为"myengine1"、类型为"pref"的推荐引擎。
    • {"result": "ok"}

引擎状态

URL:

  • http://api.easyrequest.io/engine/list

Method:

  • GET

参数:

  • appkey
    • 类型: string
    • 必选: true
    • 描述: 注册时发送到邮箱的身份标识

返回方式:

  • JSON

示例:

  • http://api.easyrequest.io/engine/create/list?appkey=yourappkey
{"engines": [{"name": "eg1", "type": "bool", "version": "2", "records": 22},{"name": "eg2", "type": "pref", "version": "20", "records": 15828}]}
  • version: 每做一次相似度计算就会升级一次version, 开发者可以根据version判断引擎有没有更新. BTW, 引擎更新是周期性的.
  • records: 引擎现有的记录数

提交数据到引擎

URL:

  • http://api.easyrequest.io/engine/post/:name

Method:

  • POST

参数:

  • appkey
    • 类型: string
    • 必选: true
    • 描述: 注册时发送到邮箱的身份标识
  • name
    • 类型: string
    • 必选: true
    • 描述: 引擎名称,可由字母和数字组成. e.g: myengine1
  • user
    • 类型: string
    • 必选: true
    • 描述: 用户ID,只接收由数字组成的字符串. e.g: 1
  • items
    • 类型: string
    • 必选: true
    • 描述: 物品ID组成的字符串,由","分隔,物品ID只接收由数字组成的字符串,items分隔的数组最大长度为100. e.g: 101, 102, 103
  • prefs
    • 类型: string
    • 必选: false
    • 描述: 用户对物品打分组成的字符串,由","分隔,分值只接收由浮点数组成的字符串,prefs分隔的数组最大长度为100.该项需要与否取决于引擎的类型,如引擎类型是分值性(pref),则必须提供prefs参数,而且必须保证prefs和items的分隔数组长度一致,用户数组的排序和用户对物品打分数组的排序必须一致. e.g: 1.0, 1.02, 10.3

返回方式:

  • JSON

示例:

  • http://api.easyrequest.io/engine/create/post/myengine1?appkey=yourappkey&user=1&items=101,102,103&prefs=1.0,1.02,10.3
    • 这里表示为: 用户"1"对物品"101"的打分是"1.0",对物品"102"的打分是"1.02",对物品"103"的打分是"10.3".
    • 如果用户重复提交相同的数据,则取最后一条做计算,也就是说可以改变用户对物品的打分,但我们不推荐这种做法.
    • {"result": "ok"}

用户获得物品推荐

URL:

  • http://api.easyrequest.io/recommender

Method:

  • GET

参数:

  • appkey
    • 类型: string
    • 必选: true
    • 描述: 注册时发送到邮箱的身份标识
  • engine
    • 类型: string
    • 必选: true
    • 描述: 引擎名称,可由字母和数字组成. e.g: myengine1
  • user
    • 类型: string
    • 必选: true
    • 描述: 用户ID,只接收由数字组成的字符串. e.g: 1
  • top
    • 类型: string
    • 必选: false
    • 描述: 获取推荐的条数,默认为10条,最大为100条.

返回方式:

  • JSON

示例:

  • http://api.easyrequest.io/recommender?appkey=yourappkey&engine=myengine1&user=1&top=3
{
    "user": "1",
    "recommenderItems": [
        "107:2.4670174",
        "106:2.359963",
        "105:2.3046758"
    ]
}
  • 这里表示在引擎myengine1中获得用户ID为1的物品推荐,指定条目数为3条.
    • recommenderItems是一个数组,由"itemID:得分"组成,结果由得分从高到低排序.这里的物品推荐结果是107、106、105,得分是2.4670174、2.359963、2.3046758.

物品相似推荐

URL:

  • http://api.easyrequest.io/similarity

Method:

  • GET

参数:

  • appkey
    • 类型: string
    • 必选: true
    • 描述: 注册时发送到邮箱的身份标识
  • engine
    • 类型: string
    • 必选: true
    • 描述: 引擎名称,可由字母和数字组成. e.g: myengine1
  • item
    • 类型: string
    • 必选: true
    • 描述: 物品ID,只接收由数字组成的字符串. e.g: 101
  • top
    • 类型: string
    • 必选: false
    • 描述: 获取推荐的条数,默认为10条,最大为100条.

返回方式:

  • JSON

示例:

  • http://api.easyrequest.io/similarity?appkey=yourappkey&engine=myengine1&item=101&top=3
{
    "item": 101,
    "similarities": [
        "105:0.2531794607639313",
        "102:0.25103703141212463",
        "106:0.1828850954771042"
    ]
}
  • 这里表示在引擎myengine1中获得物品ID为101的物品相似推荐,指定条目数为3条.
    • similarities是一个数组,由"itemID:得分"组成,结果由得分从高到低排序.这里的物品相似推荐结果是105、102、106,得分是0.2531794607639313、0.25103703141212463、0.1828850954771042.
Clone this wiki locally