wiki:intf

亲子宝典APP项目接口

目录

  1. 基本约定
  1. WEB接口

1. 基本约定

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. WEB接口

2.1 根据固定关键字搜索文章

    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 百科分类数据

    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 时间轴数据

    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 小工具配置 ====

    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 搜索百科文章

    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. mrobot移植接口

3.1 请求文章

    请求文章: http://mrobot.pcbaby.com.cn/v3/cms/articles/{article id} 
    例子: http://mrobot.pcbaby.com.cn/v3/cms/articles/2847405

    请求方式:get 
    是否需要登录:否 
    请求参数:
        pageNo:请求页码,从1开始

3.2 评论列表

    根据评论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 发表以及回复评论

    发表以及回复评论: 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 资讯栏目

栏目名称栏目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

修改历史

2010-09-24:

-百科分类数据返回的节点类型如果是文章,在节点中添加"article_id"字段。

2010-09-12:

-删除小工具配置接口,因为制作已经做好;添加时间轴两个栏目的数据源接口。

2010-09-10:

-添加搜索包含特定关键字文章接口,和搜索百科文章的接口。

2010-09-07:

-添加资讯栏目接口

2010-09-05:

-还原搜索接口,添加小工具接口,添加需移植的接口。

2012-08-30:

-删除搜索接口,因为搜索面向百科文章,这部分数据存在本地拷贝。

2012-08-21:

-创建