== 基本约定 == {{{ 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/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/list_theme.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:搜索主题,已分页形式返回[[BR]] 提交参数: {{{ "pageNo": 1 "pageSize": 10 }}} [[BR]] 提交参数说明:[[BR]] pageNo: 分页页码[[BR]] pageSize: 分页大小 返回参数:[[BR]] {{{ { "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 }, ] } }}} 返回参数说明:[[BR]] total:主题总数量[[BR]] pageNo:分页用页码[[BR]] pageSize:分页用每页数量[[BR]] theme:主题数组[[BR]] id:主题的id[[BR]] logo:主题图片[[BR]] name:主题名称[[BR]] intro:主题描述 == 2.主题接口 == 原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/theme.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:根据主题id,返回整个主题信息[[BR]] 提交参数:[[BR]] {{{ id:主题id }}} 返回参数:[[BR]] {{{ { "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 } ] } ] } }}} 返回参数说明:[[BR]] id:主题id[[BR]] name: 主题名称[[BR]] logo: 主题封面[[BR]] intro: 主题描述[[BR]] line: 主题每行信息[[BR]] id: 行id[[BR]] style: 行模版 1一行一图 2一行二图 4一行四图 5一行五图 7一行七图[[BR]] seq: 行排序[[BR]] products: 行所包含的产品数组[[BR]] id: 产品id[[BR]] name: 产品名称[[BR]] src: 产品封面[[BR]] link: 产品链接[[BR]] seq: 排序[[BR]] favorite: 收藏数[[BR]] == 3.单品库首页 == 原型 http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/category.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:返回单品库的类别[[BR]] 提交参数:无[[BR]] 返回参数:[[BR]] {{{ { "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":[] } } }}} 返回参数说明:[[BR]] categories: 包含所有的类别(不分层级)[[BR]] relations: 描述类别的关联关系(仅下级) id:节点ID[[BR]] level:节点的层次,1表示根节点。[[BR]] seq:节点的顺序,同级节点之间的显示顺序。从1开始[[BR]] name:节点名称[[BR]] logo: 类别logo intro: 类别描述 $node id value:节点ID的值。以节点ID的值作为key,该节点的子节点集合作为value,建立节点之间的关联关系,实现节点的向下遍历。[[BR]] === 示例表示:=== -客厅 -- 沙发 -- 荼几 -卧室 == 4.搜索接口(搜索结果跟猜你喜欢的返回参数一样) == http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/list.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:根据条件获取产品列表[[BR]] 提交参数: {{{ type: 1 q: 沙发,红色 pageNo: 1 pageSize: 50 }}} 提交参数说明:[[BR]] type: 1为查询主题,2为查询产品。0为混合查询。 q: 关键字(必须以utf-8编码提交,多个关键字用英文逗号隔开)[[BR]] pageNo: 页码[[BR]] pageSize: 分页大小[[BR]] 返回参数:[[BR]] {{{ { "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 } ] } }}} 返回参数说明:[[BR]] total:单品总数量[[BR]] pageNo:分页用页码[[BR]] pageSize:分页用每页数量[[BR]] items: 搜索结果数组[[BR]] type: 1为主题 2为产品 name:type为1时,是主题名;type为2时,是产品名[[BR]] price:产品原价,仅当type为2时生效[[BR]] price2: 折后价(可能为空),仅当type为2时生效[[BR]] favorite:收藏数量[[BR]] src: 图片(无须区分主题、产品) == 5.测试页 == http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/test.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:返回最新的测试页面内容。[[BR]] 一个测试会分解成若干个测试题组,每个测试题组包含一个或多个测试题目。每个测试题组能够测试出用户的一个特征。该用户特征决定了后续题组的加载顺序[[BR]] 一个测试题目可以包含多个回答选项,测试题目的回答选项只能进行单选。[[BR]] 网友在答题过程中,只能单向的前进或者后退,不能进行跳跃。在进行回退时,能够从当前的题目,一直退回到测试的开始题目。这种回退可能会跨越多个题组[[BR]] 网友在答题过程中,能够放弃答题。[[BR]] 客户端需要记录网友答题的位置,在网友切换APP时,能够回到上次未完成的答题位置。 提交参数:无[[BR]] {{{ }}} 返回参数:[[BR]] {{{ [ { "$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":"现代"}] } ] } } ] }}} 返回参数说明:[[BR]] $group-id:测试题组的ID,一个测试题组可以包含一个或多个测试题[[BR]] type:single 或者 percentage,当type=single时,表示该测试题组是单选,并且会给出完成此题组后,加载下一个题组的对应规则。如果该题组回答完成后,[[BR]] 无条件的跳转到后继题组,用 "relates": [{"*": "3"}] 表示。 [[BR]] type=percentage时,该题组仅仅出现在最后一个,类型为percentage的题组,回答完成后得到的是一个用户特征的百分比集合,例如{"现代":70},{"简约":30}[[BR]] topics:测试题组下面的测试题数组,存放了该测试题组的具体测试题目。[[BR]] topic-seq:一个测试题组中,测试题目的顺序[[BR]] topic-desc:测试题目的描述[[BR]] options:测试题目的选项数组。[[BR]] option-seq:一个测试题目对应的选项的顺序号[[BR]] options-img:一个测试题目对应的选项的图片。[[BR]] option-desc:一个测试题目对应的选项的描述。[[BR]] relates:完成一个测试题组下题目的测试后,根据测试结果会判别出用户的一些特征,根据这些特征,系统在加载后续题组时会有所不同[[BR]] 这个数组就存放了这种对应关系。这个数组的每个元素表示一种用户特征和后继题组的对应关系。数字元素的【key】表示了网友[[BR]] 参与了当前题组的测试结果,【value】表示了测试题组的ID。测试结果是该测试题组下,每个答题选项,按照题目顺序拼接的一个字符串,该字符串用','分隔。[[BR]] conclusion:记录了该题组下的测试题目的测试结果和用户特征的关系,该数值的每个元素都是一种测试结果和用户特征的对应。测试结果是该[[BR]] 测试题组下,每个答题选项,按照题目顺序拼接的一个字符串,该字符串用','分隔。[[BR]] == 6.测试结果记录 == == 7.终端页 == http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.0/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/product.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:根据产品id,返回产品的详细信息[[BR]] 提交参数:[[BR]] {{{ id:产品id }}} 返回参数:[[BR]] {{{ { "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 } }}} 返回参数说明:[[BR]] name:产品名[[BR]] price:原价 [[BR]] price2:折后价[[BR]] nick:商家名称[[BR]] picUrl: 商品主图[[BR]] detailUrl: 淘宝终端页[[BR]] image:图片数组[[BR]] == 8.用户信息 == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/user.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:是[[BR]] 功能说明:登录后,返回用户信息[[BR]] 提交参数:[[BR]] {{{ "session":"xxxxx" }}} 提交参数说明:[[BR]] session: common_session_id 返回参数:[[BR]] {{{ http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ { "nick":"imoveto1", "session":"xxxx", "userid":"userid", "sign":"坚持世上一切美好的事物,哈哈!", "face":"http://xxxx", "favorite":34, "visit":134 } }}} nick:用户呢称 session:common_session_id userid:用户id sign:备注 face:头像 favorite:收藏夹数量 visit:浏览历史 == 9.用户信息修改接口 == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/user_edit.jsp [[BR]] 请求方式:POST[[BR]] 是否需要登录:是[[BR]] 功能说明:修改用户信息接口[[BR]] 提交参数:[[BR]] {{{ nick:呢称 session:session userid:用户id sign:个性签名 face:头像 }}} 返回参数:[[BR]] {{{ result:返回代码, msg:返回信息 }}} == 10.登录接口(可以是分成3个URL) == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:[[BR]] 请求方式:POST[[BR]] 功能说明:已新浪微博,腾讯微博,淘宝账号登录[[BR]] 提交参数:[[BR]] {{{ type:区分新浪微博,腾讯微博,淘宝账号 }}} 返回参数:[[BR]] {{{ }}} == 11.注销接口(已弃用,不需要web端做接口,APP端直接提交注销请求到passport即可) == == 12.收藏接口 == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:[[BR]] 请求方式:POST[[BR]] 是否需要登录:是[[BR]] 功能说明:登录后记录用户收藏的内容[[BR]] 提交参数:[[BR]] {{{ }}} 返回参数:[[BR]] {{{ }}} == 13.收藏列表 == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:http://youpin.pchouse.com.cn/jsp/intf/user_favorite.jsp [[BR]] 请求方式:GET[[BR]] 是否需要登录:是[[BR]] 功能说明:登录后显示用户收藏的内容[[BR]] 提交参数:[[BR]] {{{ session:common_session_id }}} 返回参数:[[BR]] {{{ { "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[[BR]] userName: 用户昵称[[BR]] products: 产品列表[[BR]] id: 产品id[[BR]] name: 产品名[[BR]] src: 产品图片地址[[BR]] link: 产品链接[[BR]] price: 价格[[BR]] price2: 折扣价[[BR]] favorite: 收藏数[[BR]] favoriteTime: 收藏时间[[BR]] == 14.浏览记录 == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:[[BR]] 请求方式:POST[[BR]] 是否需要登录:是[[BR]] 功能说明:发送用户浏览过的产品[[BR]] 提交参数:[[BR]] {{{ session:common_session_id pid:产品id macid: mac地址 t-time: 停留时间 v-time: 浏览时间 }}} 返回参数:[[BR]] {{{ }}} == 15.搜索(已弃置,请使用4.搜索接口) == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:[[BR]] 请求方式:POST[[BR]] 是否需要登录:否[[BR]] 功能说明:根据条件搜索,已分页形式返回产品列表[[BR]] 提交参数:[[BR]] {{{ }}} 返回参数:[[BR]] {{{ }}} == 16.发送评论 == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:[[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:根据主题id,已分页形式返回产品列表[[BR]] 提交参数:[[BR]] {{{ }}} 返回参数:[[BR]] {{{ }}} == 17.获取评论(视情况而定,是否在页面终端页中加入) == 原型http://trac.pc.com.cn/mobile/pototype/ideas/youjiapin/req1.0.1/ [[BR]] URL:[[BR]] 请求方式:GET[[BR]] 是否需要登录:否[[BR]] 功能说明:根据主题id,已分页形式返回产品列表[[BR]] 提交参数:[[BR]] {{{ }}} 返回参数:[[BR]] {{{ { "total":100, "pageNo":1, "pageSize":10, "comments":[ { "nickName":"b_小贝贝", "time":"9月3日 15:23", "face":"http://asdfasdf", "content":"她家的包包看起来还不错,有谁买过的,求推荐!" }, { "nickName":"Blanch_213", "time":"9月3日 15:53", "face":"http://asdfasdf", "content":"简单,但太普遍了!" } ] } }}} total:主题总数量[[BR]] pageNo:分页用页码[[BR]] pageSize:分页用每页数量[[BR]] nickName: 用户昵称 time: 评论时间 face: 用户头像 content: 评论内容 == 18.猜你喜欢 == 猜你喜欢直接使用接口:4.搜索接口(搜索结果跟猜你喜欢的返回参数一样) 该搜索接口已经兼容。 = 用户行为接口 = 家居优品项目希望通过对用户一些行为的收集,分析和识别出用户的一些特征。系统利用用户特征,能够较为准确的给网友进行商品推荐。系统主要对下列 用户的行为进行采集:搜索关键词、测试结果关键词、浏览商品、浏览主题、收藏商品。其中浏览商品和浏览主题的信息保存在客户端上,需要客户端提交给服务器, 其余信息在网友操作过程中,服务器能够自动采集。 浏览商品 采集频率:实时提交[[BR]] 数据格式:[{"mac-id":"004443fdd433434","uid":"233223","pid":"xxxxx","t-time":233][[BR]] mac-id:网卡的mac地址,必须提交。[[BR]] uid:登录用户的ID,未登录时为空。[[BR]] pid:商品ID[[BR]] v-time:商品页停留时间=离开商品终端页的时间 - 进入商品终端页的时间;单位是秒,毫秒尾数进行四舍五入。[[BR]] 存储方式:数据库[[BR]] 浏览主题 采集频率:实时提交[[BR]] 数据格式:[{"mac-id":"004443fdd433434","uid":"233223","tid":"xxxxx","t-time":2323}][[BR]] mac-id:网卡的mac地址,必须提交。[[BR]] uid:登录用户的ID,未登录时为空。[[BR]] tid:商品ID[[BR]] v-time:主题页停留时间=离开主题页的时间 - 进入主题页的时间;单位是秒,毫秒尾数进行四舍五入。[[BR]] 存储方式:数据库[[BR]]