wiki:WikiStart/web-intf

Version 49 (modified by yeweixian, 14 years ago) (diff)

--

基本约定

1.当接口处理正常时,HTTP STATUS CODE 返回给200。包括有正常的业务数据和数据为空的情况。

2.当接口处理异常时,HTTP STATUS CODE 返回给500,并且给出具体的错误信息。
    {
	"uri" : "/intf/albums-by-type.jsp",
	"error-code":"20502",
	"error-desc":"Need you follow uid.",
        "user-notice":"给用户的提示放在这里"
    }

    
3.接口默认的字符编码是UTF-8,接口需要实现对req-enc和resp-enc参数的支持。在JSP的最顶部,实现类似下面的代码:

        String queryString = request.getQueryString();
        String requestEncoding = getParam(queryString,"req_enc");
        String responseEncoding = getParam(queryString,"resp_enc");
        if(isNotBlank(requestEncoding)){
            request.setCharacterEncoding(requestEncoding);
        }
        if(isNotBlank(responseEncoding)){
            response.setCharacterEncoding(responseEncoding);
        }

4.所有有写操作的数据接口,必须用POST方式提交,在接口里需要判断提交方式,拒绝GET的调用请求。

5.接口中的JSON字符串,key都用双引号("")包裹,value是字符串类型时,也用双引号("")包裹,并且过滤掉回车换行,对字符串中包含的双引号(")进行转义;是数字类型时,不用引号。
6.所有接口的URL都必须是小写,参数名称也需要是小写。

1.首页接口---主题列表

原型  http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/

URL: http://youpin.pchouse.com.cn/jsp/intf/list_theme.jsp

请求方式:GET

是否需要登录:否

功能说明:搜索主题,已分页形式返回

提交参数:

     "pageNo": 1
     "pageSize": 10


提交参数说明:
pageNo: 分页页码
pageSize: 分页大小

返回参数:

{
    "total":100,
    "pageNo":1,
    "pageSize":10,
    "theme":[
        {
            "id":10,
            "logo":"http:xxxx",
            "name":"天猫双十二真情回馈活动",
            "intro":"topic descript",
            "seq": 1
        },
        {
            "id":11,
            "logo":"http:xxxx",
            "name":"天猫双十二真情回馈活动",
            "intro":"topic descript",
            "seq": 2
        },
    ]
}

返回参数说明:
total:主题总数量
pageNo:分页用页码
pageSize:分页用每页数量
theme:主题数组
id:主题的id
logo:主题图片
name:主题名称
intro:主题描述

2.主题接口

原型  http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/

URL: http://youpin.pchouse.com.cn/jsp/intf/theme.jsp

请求方式:GET

是否需要登录:否

功能说明:根据主题id,返回整个主题信息

提交参数:

id:主题id

返回参数:

{
    "id": 1
    "name": "天猫双十二真情回馈活动",
    "logo": "http://xxxx",
    "intro": "this is intro",
    "line": [
         {
             "id": 1001,
             "style": 1,
             "seq": 1
             "products": [
                {
                    "id": 2202,
                    "name": "田园布艺沙发 sj002",
                    "src": "http://xxx",
                    "link": "http://xxx",
                    "seq": 1,
                    "favorite": 5231
                }
             ]
         },
         {
             "id": 1002,
             "style": 3,
             "seq": 2
             "products": [
                {
                    "id": 2203,
                    "name": "田园布艺沙发 sj002abc",
                    "src": "http://xxx",
                    "link": "http://xxx",
                    "seq": 1,
                    "favorite": 523
                },
               {
                    "id": 2204,
                    "name": "田园布艺沙发 sj002abc123",
                    "src": "http://xxx",
                    "link": "http://xxx",
                    "seq": 2,
                    "favorite": 52
                }
             ]
         }
    ]
}

返回参数说明:
id:主题id
name: 主题名称
logo: 主题封面
intro: 主题描述
line: 主题每行信息

id: 行id
style: 行模版 1一行一图 2一行二图 4一行四图 5一行五图 7一行七图
seq: 行排序
products: 行所包含的产品数组

id: 产品id
name: 产品名称
src: 产品封面
link: 产品链接
seq: 排序
favorite: 收藏数

3.单品库首页

原型  http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/

URL: http://youpin.pchouse.com.cn/jsp/intf/category.jsp

请求方式:GET

是否需要登录:否

功能说明:返回单品库的类别

提交参数:无

返回参数:

{
    "categories":{
        "1001":{
            "level":1,
            "seq":1,
            "name":"客厅",
            "logo":"http://",
            "intro":""
        },
        "1002":{
            "level":1,
            "seq":2,
            "name":"卧室",
            "logo":"http://",
            "intro":""
        },
        "100101":{
            "level":2,
            "seq":1,
            "name":"沙发",
            "logo":"http://",
            "intro":""
        },
        "100102":{
            "level":2,
            "seq":2,
            "name":"荼几",
            "logo":"http://",
            "intro":""
        }
    },
    "relations":{
        "1001":[
            100101,
            100102
        ],
        "1002":[]
    }
}

返回参数说明:
categories: 包含所有的类别(不分层级)
relations: 描述类别的关联关系(仅下级)

id:节点ID
level:节点的层次,1表示根节点。
seq:节点的顺序,同级节点之间的显示顺序。从1开始
name:节点名称
logo: 类别logo intro: 类别描述 $node id value:节点ID的值。以节点ID的值作为key,该节点的子节点集合作为value,建立节点之间的关联关系,实现节点的向下遍历。

示例表示:

-客厅

-- 沙发 -- 荼几

-卧室

4.搜索接口(搜索结果跟猜你喜欢的返回参数一样)

 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/

URL: http://youpin.pchouse.com.cn/jsp/intf/list.jsp

请求方式:GET

是否需要登录:否

功能说明:根据条件获取产品列表

提交参数:

type: 1
q: 沙发,红色
pageNo: 1
pageSize: 50

提交参数说明:

type: 1为查询主题,2为查询产品。0为混合查询。 q: 关键字(必须以utf-8编码提交,多个关键字用英文逗号隔开)
pageNo: 页码
pageSize: 分页大小

返回参数:

{
    "total":100,
    "pageNo":1,
    "pageSize":10,
    "items":[
        {
            "type": 1
            "id": 1
            "name":"天猫双十二真情回馈专题",
            "src":"http://"
        },
        {
            "type": 2
            "id": 1
            "name":"法丽莎家具 欧式床 实木床 田园婚床 双人床 1.8 1.5米",
            "price":"¥2699.00",
            "price2":"¥2000.00",
            "src": "http://",
            "favorite":1234
        }
    ]
}

返回参数说明:
total:单品总数量
pageNo:分页用页码
pageSize:分页用每页数量
items: 搜索结果数组

type: 1为主题 2为产品 name:type为1时,是主题名;type为2时,是产品名
price:产品原价,仅当type为2时生效
price2: 折后价(可能为空),仅当type为2时生效
favorite:收藏数量
src: 图片(无须区分主题、产品)

5.测试页

 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/

URL:

请求方式:GET

是否需要登录:否

功能说明:返回最新的测试页面内容。

一个测试会分解成若干个测试题组,每个测试题组包含一个或多个测试题目。每个测试题组能够测试出用户的一个特征。该用户特征决定了后续题组的加载顺序
一个测试题目可以包含多个回答选项,测试题目的回答选项只能进行单选。
网友在答题过程中,只能单向的前进或者后退,不能进行跳跃。在进行回退时,能够从当前的题目,一直退回到测试的开始题目。这种回退可能会跨越多个题组
网友在答题过程中,能够放弃答题。
客户端需要记录网友答题的位置,在网友切换APP时,能够回到上次未完成的答题位置。

提交参数:无

返回参数:

[
    {
        "$group-id": {
		    "type":"single",		
            "topics": [
                {
                    "topic-seq": 1,
                    "topic-desc": "",
                    "topic-img": "",
                    "options": [{"option-seq": 1,"option-desc": ""},
                                {"option-seq": 1,"option-desc": ""}]
                },
                {
                    "topic-seq": 2,
                    "topic-desc": "",
                    "topic-img": "",
                    "options": [{"option-seq": 1,"option-desc": ""},
                                {"option-seq": 1,"option-desc": ""}]
                }
            ],
            "relates": [{"1,2": "3"},{"1,3": "5"}]
        }
    },
    {
        "$group-id": {
		    "type":"percentage",
            "topics": [
                {
                    "topic-seq": 1,
                    "topic-desc": "",                    
					"percentage":30,
                    "options": [{"option-seq": 1,"options-img": "","option-desc": "","traits":"古典"},
                                {"option-seq": 2,"options-img": "","option-desc": "","traits":"现代"}]
                },
                {
                    "topic-seq": 2,
                    "topic-desc": "",
					"percentage":50,					
                    "options": [{"option-seq": 1,"options-img": "","option-desc": "","traits":"古典"},
                                {"option-seq": 2,"options-img": "","option-desc": "","traits":"现代"}]
                }
            ]
        }
    }
]

返回参数说明:
$group-id:测试题组的ID,一个测试题组可以包含一个或多个测试题
topics:测试题组下面的测试题数组,存放了该测试题组的具体测试题目。
topic-seq:一个测试题组中,测试题目的顺序
topic-desc:测试题目的描述
options:测试题目的选项数组。
option-seq:一个测试题目对应的选项的顺序号
options-img:一个测试题目对应的选项的图片。[[BR]] option-desc:一个测试题目对应的选项的描述。
relates:完成一个测试题组下题目的测试后,根据测试结果会判别出用户的一些特征,根据这些特征,系统在加载后续题组时会有所不同

这个数组就存放了这种对应关系。这个数组的每个元素表示一种用户特征和后继题组的对应关系。数字元素的【key】表示了网友
参与了当前题组的测试结果,【value】表示了测试题组的ID。测试结果是该测试题组下,每个答题选项,按照题目顺序拼接的一个字符串,该字符串用','分隔。

conclusion:记录了该题组下的测试题目的测试结果和用户特征的关系,该数值的每个元素都是一种测试结果和用户特征的对应。测试结果是该

测试题组下,每个答题选项,按照题目顺序拼接的一个字符串,该字符串用','分隔。

6.测试结果记录

7.终端页

 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/

URL: http://youpin.pchouse.com.cn/jsp/intf/product.jsp

请求方式:GET

是否需要登录:否

功能说明:根据产品id,返回产品的详细信息

提交参数:

id:产品id

返回参数:

{
    "name":"法丽莎家具 欧式床 实木床 田园婚床 双人床 1.8 1.5米",
    "price":"¥2699.00",
    "pric2":"¥2000.00",
    "nick":"发丽莎家居旗舰店",
    "picUrl":"http://xxxx",
    "detailUrl":"http://",
    "image":[
        "http://xxxx",
        "http://xxxx",
        "http://xxxx"
    ],
    "favorite": 123
}

返回参数说明:
name:产品名
price:原价
price2:折后价
nick:商家名称
picUrl: 商品主图
detailUrl: 淘宝终端页
image:图片数组

8.用户信息

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:GET

是否需要登录:是

功能说明:登录后,返回用户信息

提交参数:

"session":"xxxxx"

提交参数说明:
session: common_session_id

返回参数:

http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/
{
    "username":"imoveto1",
    "session":"xxxx",
    "userid":"userid",
    "remark":"坚持世上一切美好的事物,哈哈!",
    "face":"http://xxxx",
    "favorite":34,
    "visit":134
}

username:用户名
session:common_session_id
userid:用户id
remark:备注
face:头像
favorite:收藏夹数量
visit:浏览历史

9.用户信息修改接口

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:POST

是否需要登录:是

功能说明:修改用户信息接口

提交参数:

username:用户名[[BR]]
session:session[[BR]]
userid:用户id[[BR]]
remark:备注[[BR]]
face:头像[[BR]]

返回参数:

10.登录接口(可以是分成3个URL)

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:POST

功能说明:已新浪微博,腾讯微博,淘宝账号登录

提交参数:

type:区分新浪微博,腾讯微博,淘宝账号

返回参数:

11.注销接口

12.收藏接口

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:POST

是否需要登录:是

功能说明:登录后记录用户收藏的内容

提交参数:

session:common_session_id
userId:用户id

返回参数:

{
	"userId": 1,
    "userName":"XXX",
    "products": [
        {
            "id": 2203,
            "name": "田园布艺沙发 sj002abc",
            "src": "http://xxx",
            "link": "http://xxx",
            "price": 998.00,
            "price2": 998.00,
            "favorite": 523,
            "favoriteTime": XXXX-XX-XX
        },
        {
            "id": 2204,
            "name": "田园布艺沙发 sj002abc123",
            "src": "http://xxx",
            "link": "http://xxx",
            "price": 998.00,
            "price2": 998.00,
            "favorite": 52,
            "favoriteTime": XXXX-XX-XX
        }
    ]
}

userId: 用户id userName: 用户昵称 products: 产品列表 id: 产品id name: 产品名 src: 产品图片地址 link: 产品链接 price: 价格 price2: 折扣价 favorite: 收藏数 favoriteTime: 收藏时间

13.收藏列表

14.浏览记录

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:POST

是否需要登录:是

功能说明:发送用户浏览过的产品

提交参数:

pid:产品id

返回参数:

15.搜索(已弃置,请使用4.搜索接口)

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:POST

是否需要登录:否

功能说明:根据条件搜索,已分页形式返回产品列表

提交参数:

返回参数:

16.发送评论

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:GET

是否需要登录:否

功能说明:根据主题id,已分页形式返回产品列表

提交参数:

返回参数:

17.获取评论(视情况而定,是否在页面终端页中加入)

原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/

URL:

请求方式:GET

是否需要登录:否

功能说明:根据主题id,已分页形式返回产品列表

提交参数:

返回参数:

18.猜你喜欢

猜你喜欢直接使用接口:4.搜索接口(搜索结果跟猜你喜欢的返回参数一样) 该搜索接口已经兼容。

用户行为接口

家居优品项目希望通过对用户一些行为的收集,分析和识别出用户的一些特征。系统利用用户特征,能够较为准确的给网友进行商品推荐。系统主要对下列

用户的行为进行采集:搜索关键词、测试结果关键词、浏览商品、浏览主题、收藏商品。其中浏览商品和浏览主题的信息保存在客户端上,需要客户端提交给服务器, 其余信息在网友操作过程中,服务器能够自动采集。

浏览商品

采集频率:实时提交
数据格式:[{"mac-id":"004443fdd433434","uid":"233223","pid":"xxxxx","t-time":233]

mac-id:网卡的mac地址,必须提交。[[BR]] uid:登录用户的ID,未登录时为空。[[BR]] pid:商品ID[[BR]] v-time:商品页停留时间=离开商品终端页的时间 - 进入商品终端页的时间;单位是秒,毫秒尾数进行四舍五入。

存储方式:文件

浏览主题

采集频率:实时提交
数据格式:[{"mac-id":"004443fdd433434","uid":"233223","tid":"xxxxx","t-time":2323}]

mac-id:网卡的mac地址,必须提交。[[BR]] uid:登录用户的ID,未登录时为空。[[BR]] tid:商品ID[[BR]] v-time:主题页停留时间=离开主题页的时间 - 进入主题页的时间;单位是秒,毫秒尾数进行四舍五入。

存储方式:文件

Attachments