一.基本约定
1.基本约定
1.当接口处理正常时,HTTP STATUS CODE 返回给200。包括有正常的业务数据和数据为空的情况。
2.当接口处理异常时,HTTP STATUS CODE 返回非200,并且给出具体的错误信息。
{
"desc":"给用户的提示放在这里"
}
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.需要分页的接口,统一返回以下字段: pageNo,pageSize,total
二.接口列表
1.0首页
备注:首页接口
接口说明:参照亲子V2.0接口--1.0首页(http://trac.pc.com.cn/iphone/wiki/baby/interface#a1.0首页),添加参数v=2.1.0,
根据参数 v >=2.1.0,则焦点图增加视频类文章页、问答专栏详情的推广,热门栏目增加崔玉涛专栏;不传参数v默认为2.0版本,返回数据不增加新数据
mrobot请求URL:
1)开发环境:
备孕首页:http://dev40.pcbaby.com.cn/v2/qzbd/home/1?v=2.1.0
怀孕首页:http://dev40.pcbaby.com.cn/v2/qzbd/home/2?v=2.1.0
育儿首页:http://dev40.pcbaby.com.cn/v2/qzbd/home/3?v=2.1.0
2)测试环境:
3)线上:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
v = 2.1.0 //版本号
返回参数:
{
focus:[ //焦点图数据(增加视频类文章页、问答专栏详情的推广)
{
id: // id=234&112( 推“专栏详情”的推广时id为专栏期数的id&问答系统id)
image:
title:
type:论坛(1列表、2终端);亲子学院(3列表、4终端);活动(5列表、6终端);工具(7终端);食谱(8终端);资讯(9终端);
问答(10终端);百科(11终端);崔玉涛视频(12视频文章终端);专栏详情(13)
url:(活动、工具终端打开需要url,不需要时为空字符串)
}
],
recommend:[ //四个推荐位内容
{
id:
image:
title:
type:论坛(1列表、2终端);亲子学院(3列表、4终端);活动(5列表、6终端);工具(7终端);食谱(8终端);资讯(9终端);问答(10终端);百科(11终端)
url:(活动、工具终端打开需要url,不需要时为空字符串)
}
],
recommendChannel:[ //热门栏目(增加崔玉涛专栏)
{
title: //根据栏目名称跳转至对应模块
type: //热门栏目类型(type=5表示崔玉涛专栏)
}
],
topFocus: [ //焦点图广告
{
cc-uri: "",
image: "http://www1.pcbaby.com.cn/appguanggao/1.jpg?IVY_LEVEL_1?481456_307375",
seq: 1,
title: "广告",
to-uri: "http://ivy.pconline.com.cn/adpuba/click?adid=307375&id=test.gjz.zicong.",
updateAt: 1408678837215,
vc-uri: "none"
}
]
}
2.0 崔玉涛专栏
备注:崔玉涛专栏
接口开发:
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
返回参数:
{
"status": 0, //状态码 0正常返回 非0请求错误
"desc": "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"authorInformation" : //专家信息
{
"face" : "" //专家头像
"name" : "" // 专家姓名
"title" : "" //职称
"position" : "" //职务
"introduction" : "" //专家介绍
},
"ad": //广告
{
"image": ""
"adUrl" : ""
},
"hot": //育儿热点
{
"title":"育儿热点",
"section":[
{
"categoryId": //分类id
"title": //分类标题
"image": //图片
}
...
]
},
"video": //在线视频
{
"title":"在线视频",
"section":[
{
"id":"" // 文章id
"title":"" // 视频标题
"date":123 // 视频时间(时间戳)
"image":"" // 列表图片
"type": //视频分类标签,用于app端统计视频点击播放情况
}
...
]
},
"question": //问答专栏
{
"title":"问答专栏",
"section":[
{
"columnsId":"" // 专栏期数id
"qId" // 问答系统id
"title":"" // 专栏标题
"preview": // 专栏简介
"date":123 // 时间
"image": "" // 专栏图片
}
...
]
},
"article": //育儿文章
{
"title":"育儿文章",
"section":[
{
"articleId": // 文章id
"title": // 文章标题
"preview": // 文章简介
"date": //时间
"image": // 文章图片
}
...
]
}
}
3.0 育儿热点
备注:育儿热点
接口开发:
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
返回参数:
{
status: 0, //状态码 0正常返回 非0请求错误
desc: "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"total": 20, //分类总数
"datas": //返回数据
[
{
"categoryId": // 分类id
"title": // 标题
"image": //图片
}
...
]
}
3.1问题列表
备注:问题列表(已放入75.40开发机)
接口开发:陈子洋,吴全贵
mrobot接口URL: http://mrobot.pcbaby.com.cn/v2/qzbd/getQuestionList?categoryId=1&pageNo=1&pageSize=20
原始URL: http://kuaiwen.pcbaby.com.cn/intf/forCMS/getQuestionsByAdType.jsp?categoryId=1&pageNo=1&pageSize=20
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
categoryId //分类id,必须传,不传返回400
pageNo //第几页
pageSize //每页数量
返回参数:
{
"ret":0-正常返回数据 -1-无数据返回,
"total":总记录数,
"pageNo":当前页码,
"pageSize":每页返回条数,
"questions":[
{
"id":问题id,
"title":问题标题,
"content":问题内容,
"url":问题url,
"accountName":提问用户名,
"accountPic":提问用户头像url,
"accountUrl":提问用户个人页面url,
"createTime":提问时间,
"answer":答案
}
]
}
4.0视频列表
备注:视频列表
接口开发:
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
pageNo
pageSize
返回参数:
{
status: 0, //状态码 0正常返回 非0请求错误
desc: "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"total": 20, //列表总数
"pageNo": 1, //当前页码
"pageSize": 20, //每页条数
"data": //返回数据
[
{
"id":"" // 文章id
"title":"" // 视频标题
"date":123 // 视频时间(时间戳)
"image":"" // 列表图片
"type": //视频分类标签,用于app端统计视频点击播放情况
}
...
]
}
4.1视频终端页
备注:获取视频终端页
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
缓存方式:无
缓存时间:无
请求参数:
id // 文章id
返回结果:HTML页面
点击播放视频跳转协议:pcbabybrowser://PCBabyVideo/
用于视频播放的数据,需要在里面加入json
/*@_HTML_META_START_
{
"videoUrl": // 视频播放url
"adType" :// 广告分类标签,用于app端统计广告点击情况
"adTime": // 广告倒计时
"adDetailUrl": // 广告详情链接
"adUrl": // mp4广告url
}
_HTML_META_END_@*/
5.0问答专栏
备注:问答专栏
接口开发:
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
pageNo
pageSize
返回参数:
{
status: 0, //状态码 0正常返回 非0请求错误
desc: "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"total": 20, //列表总数
"pageNo": 1, //当前页码
"pageSize": 20, //每页条数
"data": //返回数据
[
{
"columnsId":"" // 专栏期数id
"qId" // 问答系统id
"title":"" // 专栏标题
"detail": // 专栏简介
"date":123 // 时间
"image": "" // 专栏图片
}
...
]
}
5.1专栏详情
备注:专栏详情
接口说明:只有请求第一页的问答数据(questionDatas)时才返回专栏数据(columnData),其他页时返回为空
接口开发:
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
columnsId //专栏期数id
qId // 问答系统id
返回参数:
{
"status": //状态码 0正常返回 非0请求错误
"desc": "" //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"columnData": //专栏数据
{
"columnId": // 专栏期数id
"title": // 专栏标题
"expertFace": //专家头像
"authorName": //专家名
"department"://专家所在部门
"hospital": //专家所在医院名称
"expertId": //专家id
"detail": //专栏详情介绍
}
"questionDatas": //问答数据
[
{
"questionId": // 问题id
"authorFace": // 用户头像
"authorName": // 用户名称
"question": // 问题描述
"answer": // 回答内容
"authorId": //用户id
},
...
]
"total": 20, //问答总数
"pageNo": 1, //当前页码
"pageSize": 20, //每页条数
}
5.1.2提问
备注:提问,默认为崔玉涛专栏的提问
请求URL:http://kuaiwen.pcbaby.com.cn/intf/app/ask.jsp
HTTP请求方式:post
是否需要登录:是
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
req_enc:请求预设编码
resp_enc:结果集预设编码
windowname:跨域时赋值
callback:回调函数名
title:问题标题
des:问题描述
typeid:问题分类ID
specialistid:专家ID(可选)
设置header Cookie = "common_session_id=xxxx";
返回参数
{"result":(0-提问成功 -1-异常),"msg":"结果提示信息"}
5.2 问答终端
备注:问答终端
接口说明:参照亲子V2.0接口--5.2问答详情(http://trac.pc.com.cn/iphone/wiki/baby/interface#a5.2问答详情)
接口开发:
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:HTML页面
缓存方式:无
缓存时间:无
请求参数:
qId: // 问题id
返回参数:
{
"qId": //问题id
"title": //问题标题
"des": //问题详情
"qTime" //问题发布时间
"answers":[
{
"aId": //回答id
"authorFace":// 回答医生头像
"aTime":"//回答时间
"department":"妇科", //所属科目
"authorName": //医生姓名
"hospital":" //医院名
"answer": // 回答详情
"authorId": //医生id
}
]
}
附:
用于浮层广告的数据,需要在里面加入json
/*@_HTML_META_START_
{
"image": ""
"adUrl" : ""
}
_HTML_META_END_@*/
6.0 文章列表
备注:文章列表
接口开发:
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
pageNo
pageSize
返回参数:
{
status: 0, //状态码 0正常返回 非0请求错误
desc: "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"total": 20, //列表总数
"pageNo": 1, //当前页码
"pageSize": 20, //每页条数
"data": //返回数据
[
{
"articleId":"" // 文章id
"title":"" // 文章标题
"detail": // 文章简介
"date":"" // 时间
"image":"" // 文章图片
}
...
]
}
6.1 文章终端
备注:文章终端
接口说明:同二胎宝典接口--4.资讯文章终端接口 (mrobot):
http://trac.pc.com.cn/iphone/wiki/2ndchild/interface#a4.资讯文章终端接口mrobot
7.0 百科图集 ===(接口已经有了,只需mrobot做中转)
备注:百科图集
接口开发:陈旭
原始URL:http://pp.pcbaby.com.cn/template/pcbaby/Content_Albums_List.jsp?REQUEST_CODE=303&albumsId=24068
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
REQUEST_CODE=303 //请求代码
albumsId=24068 //图集id
返回参数:
{
status: 0, //状态码 0正常返回 非0请求错误
desc: "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"total": 15, //当前图集中图片总数
"pageNo": 1,
"pageSize": 15,
"pageCount":1,
"ablumsList": //图集数据
[
{
"imageContent": //图片描述
"imageId": //图片id
"imageTitle": //图集标题
"thumb": //小图url
"url": //图片url
}
...
]
}
7.1 百科一二级列表
备注:获取百科一二级列表数据
接口开发:吴全贵
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
返回参数:
{
"status": 0, //状态码 0正常返回 非0请求错误
"desc": "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"wikiSortCount": //一级分类数量
"wikiSortList":
[
{
"wikiSortName": //string,一级分类名
"isHaveSecondSort": //bool,是否有二级分类
"wikiSortUrl": //string,一级分类页对应url,如果isHaveSecondSort为false必须提供
"wikiSecondSortCount": //int,二级分类数量,如果isHaveSecondSort为true必须提供
"wikiSecondSortList":[
{
"wikiSecondSortName": //string,二级分类名
"isHaveThirdSort”: //bool,是否有三级分类
"wikiSecondSortUrl": //string,二级分类页对应url, 如果isHaveThirdSort为false必须提供
"wikiSecondSortId": //二级分类id
"wikiThirdSortCount": //int,三级分类数量如果isHaveThirdSort为true必须提供
} ……
]
} ......
]
}
7.2 百科三四级列表
备注:获取百科三四级列表数据
接口开发:吴全贵
原始URL:
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
wikiSecondSortId //二级分类id
返回参数:
{
"status": 0, //状态码 0正常返回 非0请求错误
"desc": "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"wikiThirdSortCount": //三级分类数量
"wikiThirdSortList":
[
{
"wikiThirdSortName": //string,三级分类名
"isHaveThirdSort": //bool,是否有四级分类
"wikiThirdSortUrl": //string,三级分类页对应url,如果isHaveThirdSort为false必须提供
"wikiFourthSortCount": //int,四级分类数量,如果isHaveThirdSort为true必须提供
"wikiFourthSortList":[
{
"wikiFourthSortCmtUrl": //string,评论链接
"wikiFourthSortName": //sting,四级分类名(文章名)
"wikiFourthSortUrl": //string,四级分类链接(文章链接)
} ……
]
} ......
]
}
7.3 百科搜索
备注:百科搜索
接口开发:吴全贵
原始URL:http://baike.pcbaby.com.cn/intf/app/content_wiki_search_310.jsp
请求URL:
HTTP请求方式:get
是否需要登录:否
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
“REQUEST_CODE” : 310 [请求代码]
“keywords”:[string 搜索的关键字]
返回参数:
{
"status": 0, //状态码 0正常返回 非0请求错误
"desc": "", //提示信息 status=0提示信息为空;status非0,给出对应的出错提示信息
"wikiThirdSortList":
[
{
"wikiThirdSortCmtUrl": //string,评论链接
"wikiThirdSortName": //sting,文章名
"wikiThirdSortUrl": //string,文章url
}......
]
}
7.0 获取收藏列表 ===(接口已经有了,只需mrobot做中转)
备注:我的收藏
接口开发:
应用端请求url: http://my.pcbaby.com.cn/collection/intf/collection/app/collection_list.jsp
mrobot请求url:
测试url:
HTTP请求方式:get
是否需要登录:是
返回格式:JSON
缓存方式:无
缓存时间:无
请求参数:
common_session_id:登录用户id
type 收藏对象类型,默认查所有类型(0CMS文章;1百科知识;2百科文章;3频道;4工具;5帖子;6问答;7亲子学院;8图库;9聚超值)
intfType 接口类型,(1:APP,2:炫版,默认为2)
pageSize 每页显示数
pageNo 当前页数
返回参数
示例1:有收藏数据
{
"pageNo":"第几页",
"pageSize":"每页显示最大数量",
"total":"总的数据量",
"RESPONSE_STATUS":"响应状态",
"result":"0/1,0返回失败/1返回成功",
"collections":[
{
"objectId":"收藏对象标识码",
"title":"文章标题"
}
]
}
示例2:无收藏
{
"RESPONSE_STATUS" = 200;
msg = "找不到已收藏的列表";
result = 0;
}
示例3:错误请求
{
"RESPONSE_STATUS": 500,
"error-desc": "internal accountId,type",
"uri": "intf/app/2.0/favor_list_101.jsp",
"user-notice": "参数为空或不合法,或未登录"
}