== 亲子宝典APP项目接口 == === 目录 === 1. [#point100 基本约定] 2. [#point200 WEB接口] === 1. [=#point100 基本约定] === {{{ 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是字符串类型时,也用双引号("")包裹,并且过滤掉回车换行,对字符串中包含的双引号(")进行转义;是数字类型时,不用引号。 }}} === 2. [=#point200 WEB接口] === ==== 2.1 [=#point201 根据固定关键字搜索文章] ==== {{{ URL:http://mrobot.pcbaby.com.cn/v3/cms/search HTTP请求方式:get 是否需要登录:否 功能说明:搜索cms系统里关键字包含该keyword的文章 提交参数: q:搜索关键字,该关键字有固定选项 需要UTF-8编码 req-enc:请求时字符编码,缺省是UTF-8 resp-enc:响应时字符编码,缺省是UTF-8 返回参数: { 参考 http://mrobot.pconline.com.cn/v2/cms/search?q=%E4%BD%A0%E5%A5%BD&clusterQuery=(cluster_channel:%E6%96%B0%E9%97%BB%E6%96%87%E7%AB%A0) } 返回参数说明: 排序方式: }}} ==== 2.2 [=#point201 百科分类数据] ==== {{{ URL:/intf/qzbd-bk-datas.jsp HTTP请求方式:get 是否需要登录:否 功能说明:定义 http://www.pcbaby.com.cn/qzbd/ 上的层次关系,对层次关系的深度不作限制。该接口能够返回指定层级的节点集合。 提交参数:level:节点的层级,如果该参数没有时,返回全部的节点数据 req-enc:请求时字符编码,缺省是UTF-8 resp-enc:响应时字符编码,缺省是UTF-8 返回参数: { "items":{ "323":{ "level":1, "seq":1, "name":"亲子百科", "type":"node" }, "324":{ "level":2, "seq":2, "name":"怀孕百科", "type":"node" }, "326":{ "level":2, "seq":3, "name":"生男生女", "article_id":"2847405", "type":"article" } }, "relations":{ "$node id value1":[ 423, 34, 344, 3434 ], "$node id value2":[ 423, 34, 344, 3434 ] } } 返回参数说明: id:节点ID level:节点的层次,1表示根节点。 seq:节点的顺序,同级节点之间的显示顺序。从1开始 name:节点名称 type:节点类型,node表示该节点的下级还是一个节点,article表示该节点的下级已经是文章ID $node id value:节点ID的值。以节点ID的值作为key,该节点的子节点集合作为value,建立节点之间的关联关系,实现节点的向下遍历。 排序方式: 无。 article_id: 文章ID的值。 }}} ==== 2.3 [=#point203 时间轴数据] ==== {{{ URL:/intf/qzbd-time-datas.jsp HTTP请求方式:get 是否需要登录:否 功能说明:时间轴数据的接口。该接口是一个字典接口,key是时间轴上的时间节点,value是该节点下的数据内容。对应一个指定的日期,就能通过算法将 其转换成时间轴上的一个节点,采用字典的方式存储,有利于数据的访问。 提交参数: req-enc:请求时字符编码,缺省是UTF-8 resp-enc:响应时字符编码,缺省是UTF-8 返回参数: { "huai-yun":[ { keyName: "hy1week", part: "怀孕阶段", section: "第1周", stage: "怀孕1个月", keyword: "怀孕1个月", days:7, url: "http://www.pcbaby.com.cn/qzbd/hysjd/hy1week/", pic: "http://i1.3conline.com/images/piclib/201010/21/batch/1/72267/1287629714069qxe9xj8ecx_medium.jpg", "contents": [ { "seq": 1, "name": "育儿概况", "value": "" }, { "seq": 2, "name": "免疫提醒", "value": "" } ] }, { keyName: "hy1week", part: "怀孕阶段", section: "第1周", stage: "怀孕1个月", keyword: "怀孕1个月", days:7, url: "http://www.pcbaby.com.cn/qzbd/hysjd/hy1week/", pic: "http://i1.3conline.com/images/piclib/201010/21/batch/1/72267/1287629714069qxe9xj8ecx_medium.jpg", "contents": [ { "seq": 1, "name": "育儿概况", "value": "" }, { "seq": 2, "name": "免疫提醒", "value": "" } ] } ], "yu-er":[ { keyName: "3week", part: "育儿阶段", section: "3周", stage: "宝宝第1个月", keyword: "", days:21, url: "http://www.pcbaby.com.cn/qzbd/hysjd/hy1week/", pic: "http://i1.3conline.com/images/piclib/201010/21/batch/1/72267/1287629714069qxe9xj8ecx_medium.jpg", "contents": [ { "seq": 1, "name": "育儿概况", "value": "" }, { "seq": 2, "name": "免疫提醒", "value": "" } ] }, { keyName: "3week", part: "育儿阶段", section: "3周", stage: "宝宝第1个月", keyword: "", days:21, url: "http://www.pcbaby.com.cn/qzbd/hysjd/hy1week/", pic: "http://i1.3conline.com/images/piclib/201010/21/batch/1/72267/1287629714069qxe9xj8ecx_medium.jpg", "contents": [ { "seq": 1, "name": "育儿概况", "value": "" }, { "seq": 2, "name": "免疫提醒", "value": "" } ] } ] } 返回参数说明: keyName:根据指定日期 part:时间轴的阶段,主要分为怀孕阶段和育儿阶段 section:时间轴上不同时期的具体时间节点,在怀孕时期、新生儿和婴儿时期是以周为单位,幼儿时期是以月为单位,学龄前时期以季度为单位。 stage:时间轴不同阶段下的不同时期。例如怀孕阶段的怀孕一个月,怀孕2个月;育儿阶段的新生儿、婴儿、幼儿等。 keyword:搜索文章用关键字,对应Excel表格 days:与开始时间相隔,例如第一周value为7,默认前四周一周7天,一个月30天计算 url:分享的URL,该URL是WEB内容对应的地址。 pic:图片URL contents:包含该时间轴节点下的数据内容,是一个数组。数组中的每个元素由seq,name,value三部分组成。 seq:该元素在数值中的顺序号,不能重复。 name:数据内容的名称。 value:数据内容。 排序方式: 无。 }}} ~~==== 2.4 [=#point204 小工具配置] ====~~ {{{ URL:/intf/tools.jsp HTTP请求方式:get 是否需要登录:否 功能说明: 提交参数: req-enc:请求时字符编码,缺省是UTF-8 resp-enc:响应时字符编码,缺省是UTF-8 返回参数: [ { "catalog":"备孕期工具", "tools":[ { "title":"排卵期/安全期计算器", "summary":"blahblahblah", "icon":"http://xxxx.png", "url":"http://xxxxx.html" }, { "title":"排卵期/安全期计算器", "summary":"blahblahblah", "icon":"http://xxxx.png", "url":"http://xxxxx.html" } ] }, { "catalog":"怀孕期工具", "tools":[ { "title":"预产期计算器", "summary":"blahblahblah", "icon":"http://xxxx.png", "url":"http://xxxxx.html" }, { "title":"孕妇体重计算器", "summary":"blahblahblah", "icon":"http://xxxx.png", "url":"http://xxxxx.html" } ] } ] 返回参数说明: catalog:目录名称 titile:工具名称 summary:工具功能描述 icon:工具icon地址 url:工具的跳转地址 排序方式: }}} ==== 2.5 [=#point205 搜索百科文章] ==== {{{ URL:http://mrobot.pcbaby.com.cn/v3/cms/searchBaike HTTP请求方式:get 是否需要登录:否 功能说明:只搜索亲子百科里的文章 提交参数: q:搜索关键字 需要UTF-8编码 req-enc:请求时字符编码,缺省是UTF-8 resp-enc:响应时字符编码,缺省是UTF-8 返回参数: { 参考 http://mrobot.pconline.com.cn/v2/cms/search?q=%E4%BD%A0%E5%A5%BD&clusterQuery=(cluster_channel:%E6%96%B0%E9%97%BB%E6%96%87%E7%AB%A0) } 返回参数说明: 排序方式: }}} === 3. [=#point300 mrobot移植接口] === === 3.1 [=#point301 请求文章]=== {{{ 请求文章: http://mrobot.pcbaby.com.cn/v3/cms/articles/{article id} 例子: http://mrobot.pcbaby.com.cn/v3/cms/articles/2847405 请求方式:get 是否需要登录:否 请求参数: pageNo:请求页码,从1开始 }}} === 3.2 [=#point302 评论列表]=== {{{ 根据评论id请求评论列表: http://mrobot.pcbaby.com.cn/v3/cmt/topics/{文章对应的评论id} 例子: http://mrobot.pcbaby.com.cn/v3/cmt/topics/12975470 设计稿:http://192.168.19.80/2012-8/PCbaby/part2-4-1-remark.html 请求方式:get 是否需要登录:否 请求参数: reverse:排序方式,0代表按发表时间倒序,1代码正序 support:待验证 }}} === 3.3 [=#point303 发表以及回复评论]=== {{{ 发表以及回复评论: http://mrobot.pcbaby.com.cn/v3/cmt/topics_create 请求方式:post 是否需要登录:匿名不需要,非匿名需要。 请求参数: id:评论id anonymous:是否匿名 columnId:未知 content:评论内容 title:文章标题 replyFloor2:回复的楼层,如果是发表评论则该参数可以不加 common_session_id:会话id,如果是匿名则该参数可以不加 username : 用户名 url : 文章url }}} === 3.4 [=#point304 资讯栏目]=== ||=栏目名称=||=栏目id=||=计数器=|| ||最新||http://www.pcbaby.com.cn/app/json/yunqian/||无|| ||备孕必知||http://www.pcbaby.com.cn/app/json/beiyun/||无|| ||新生儿||http://www.pcbaby.com.cn/app/json/xinshenger/||无|| {{{ 请求栏目: http://mrobot.pcbaby.com.cn/v3/cms/channels/{channel id} 例子: http://mrobot.pcbaby.com.cn/v3/cms/channels/1 请求方式:get 是否需要登录:否 请求参数:无 备注: 最新 1 备孕必知 2 新生儿 3 }}} == [=#point000 修改历史 ] == 2010-09-24: -百科分类数据返回的节点类型如果是文章,在节点中添加"article_id"字段。 2010-09-12: -删除小工具配置接口,因为制作已经做好;添加时间轴两个栏目的数据源接口。 2010-09-10: -添加搜索包含特定关键字文章接口,和搜索百科文章的接口。 2010-09-07: -添加资讯栏目接口 2010-09-05: -还原搜索接口,添加小工具接口,添加需移植的接口。 2012-08-30: -删除搜索接口,因为搜索面向百科文章,这部分数据存在本地拷贝。 2012-08-21: -创建