IOS同步请求API

HTTP

全局规范

  • URL
    URL的组成:基本的网络地址 + 分支节点
    http://172.19.201.155:8443/datasyn 为 基本的网络地址
    /login 为 分支节点
    http://172.19.201.155:8443/datasyn/login 组成完整的 URL
    当前统一的基本网络地址为 http://172.19.201.155:8443/datasyn

  • 请求方式
    |POST
    |GET

  • 请求消息头

  • 请求参数
    键值对(key value形式)
    默认都是必选参数

  • 请求参数
    键值对(key value形式)

  • 响应的状态码
    统一的返回码为: 200 (注:只要访问服务器成功,一律返回200)

  • 响应的格式
    Json

  • 响应的JSON规范

  • 成功

{
  "meta": {
    "status": 1,
    "message": "success"
  },
"data": ....
}

成功的标记为 status为 1
根据具体的请求,如果需要返回值 data节点 包含的是 返回结果
不需要需要返回值 ,则没有data节点

  • 失败
{
  "meta": {
    "status": 错误编码,
    "message": "错误原因"
  },
"data": null
}

失败的标记为 status为 除1以外的其它编码
status不为1时,message为错误原因

  • 同步数据表:user、Usercard、Userlearningstyle、usertestcounnt、userresource、userword、usertest,这几个表在json中作为key值时区分大小写。必须按照这个格式写
  • 轨迹数据表:usertest、userlogin,这几个表在json中作为key值时区分大小写。必须按照这个格式写
  • 日期格式:json中传输的日期格式 yyyy-MM-dd HH:mm:ss
    • 注:元数据表中的lastModTime为long类型,所以前端应该传输数值型值。

1.注册接口

  • 分支节点 : /user/register
  • 请求方式 : POST
  • 请求参数
key 类型 说明
loginName String
password String
realName String
sex int 1:代表男,0:代表女
school String 学校
grade String 班级
classNum int 年级,值1到6
englishscore int 英语分数,值1到200
  • 响应结果 :
  • 成功
{
 "meta": {
   "status": 1,
   "message": "success"
 },
 "data": {
   "userId": 22
 }
}
  • 失败
status message
3 参数有误!
2000 用户已存在

2.登录接口

  • 分支节点 : /user/login
  • 请求方式 : POST
  • 请求参数
key 类型 说明
loginName String
password String
synDevice String 设备标识
  • 响应结果 :
  • 成功
{
 "meta": {
   "status": 1,
   "message": "success"
 },
 "data": {
   "token": "21:1489385636029",
   "synFlage": 4,
   "message": "有可能有数据遗留在当前的设备上"
 }
}
  • 其中synFlage和message的值为
synFlage message
1 同步成功
2 有可能有数据遗留在上次操作的设备上
3 在上次登录操作的设备上数据同步失败
4 有可能有数据遗留在当前的设备上
5 上次在当前设备上数据同步失败
  • 失败
status message
2001 参数有误!

3.忽略同步提示接口

  • 分支节点 : /syn/ignore
  • 请求方式 : POST
  • 请求参数
key 类型 说明
token String
synDevice String 设备标识
  • 响应结果 :
  • 成功
{
 "meta": {
   "status": 1,
   "message": "success"
 },
 "data": null
}
  • 失败
status message
4 token值无效

4.获取同步元数据接口

  • 分支节点 : /syn/synmetas
  • 请求方式 : POST
  • 请求参数
key 类型 说明
token String
json String json格式数据
  • json格式数据格式
    • 其中synTable的值不区分大小写。且synId、userId字段属于无关字段(即不会起任何作用)
{   
  "tablemeta":[ 
  {"synId":1,"synTable":"user",  "userId": 111,  "version":0,  "lastModTime":null },    
  {"synId":1, "synTable":"Usercard", "userId": 111,"version":0, "lastModTime":null},        
  {"synId":1, "synTable":"Userlearningstyle","userId": 111,"version":0,"lastModTime":null}, 
  { "synId":1,"synTable":"usertestcount", "userId": 111, "version":0, "lastModTime":null }, 
  { "synId":1,"synTable":"userresource", "userId": 111, "version":0, "lastModTime":null }, 
  { "synId":1,"synTable":"usertest",  "userId": 111, "version":0,  "lastModTime":null },
  { "synId":1,"synTable":"userword",  "userId": 111,"version":0,  "lastModTime":null   }    
  ]             
}
  • 响应结果 :
  • 成功
{
 "meta": {
   "status": 1,
   "message": "success"
 },
 "data": {
   "synTableCount": 7,
   "upsyntable": [],
   "downsyntable": [
     {
       "synTable": "user"
     },
     {
       "synTable": "Usercard"
     },
     {
       "synTable": "Userlearningstyle"
     },
     {
       "synTable": "usertestcount"
     },
     {
       "synTable": "userresource"
     },
     {
       "synTable": "usertest"
     },
     {
       "synTable": "userword"
     }
   ]
 }
}
  • 失败
status message
3 参数有误
4 token值无效
5 json数据格式或者数据类型有误!

5.数据同步接口

  • 分支节点 : /syn/syntabledata
  • 请求方式 : POST
  • 请求参数
key 类型 说明
token String
json String json格式数据
  • json格式数据格式
    • 其中synTable的值不区分大小写。tableData中的user等key值不区分大小写。
{   
  "downSynTable":[
     {"synTable":"usertestcount"},
     {"synTable":"userresource"}
    ], 
   "tableData":{
     "Userlearningstyle":[
       {"userLearningStyleId":1,"userId":111,"style1":1,"style2":2}
     ],
     "Usercard":[
       {"userCardId":1,"cardclick1":1,"cardclick2":1,"cardclick3":2,"cardclick4":2,"userId":111}
     ],
     "usertest":[
       {"userTestId":1,"userId":111,"answertimes":3,"righttimes":2,"testinTime":"2017-03-25 15:58:23","testoutTime":"2017-03-25 17:18:07","testtype":1,"wrongtimes":1,"word":"apple"},
       {"userTestId":1,"userId":111,"answertimes":4,"righttimes":6,"testinTime":"2017-03-25 15:58:23","testoutTime":"2017-03-25 17:18:07","testtype":1,"wrongtimes":1,"word":"banana"},
       {"userTestId":1,"userId":111,"answertimes":5,"righttimes":7,"testinTime":"2017-03-25 15:58:23","testoutTime":"2017-03-25 17:18:07","testtype":1,"wrongtimes":1,"word":"orange"},
       {"userTestId":1,"userId":111,"answertimes":6,"righttimes":3,"testinTime":"2017-03-25 15:58:23","testoutTime":"2017-03-25 17:18:07","testtype":1,"wrongtimes":1,"word":"tomato"}
     ]
   } 
}
  • 响应结果 :
  • 成功
{
 "data": {
   "tableData": {
     "userresource": [
       {
         "learncount": 12,
         "learntimenow": 2,
         "learntimes": 2,
         "rType": 2,
         "resourceId": 2,
         "rloginTime": "2017-03-25 15:58:23",
         "rlogoutTime": "2017-03-25 17:18:07",
         "userId": 111,
         "userResourceId": 30,
         "word": "rice"
       },
       {
         "learncount": 4,
         "learntimenow": 6,
         "learntimes": 2,
         "rType": 3,
         "resourceId": 3,
         "rloginTime": "2017-03-25 15:26:27",
         "rlogoutTime": "2017-03-25 16:56:12",
         "userId": 111,
         "userResourceId": 31,
         "word": "mike"
       },
       {
         "learncount": 8,
         "learntimenow": 3,
         "learntimes": 2,
         "rType": 4,
         "resourceId": 4,
         "rloginTime": "2017-03-25 15:35:23",
         "rlogoutTime": "2017-03-25 16:39:28",
         "userId": 111,
         "userResourceId": 32,
         "word": "pen"
       },
       {
         "learncount": 6,
         "learntimenow": 4,
         "learntimes": 2,
         "rType": 5,
         "resourceId": 5,
         "rloginTime": "2017-03-25 15:25:23",
         "rlogoutTime": "2017-03-25 16:12:08",
         "userId": 111,
         "userResourceId": 33,
         "word": "coke"
       }
     ],
     "usertestcount": [
       {
         "test1count": 3,
         "test1rightcount": 5,
         "test2count": 1,
         "test2rightcount": 3,
         "test3count": 2,
         "test3rightcount": 3,
         "test4count": 2,
         "test4rightcount": 3,
         "testcount": 1,
         "testrightcount": 3,
         "userId": 111,
         "usertestcountId": 15
       }
     ]
   },
   "tableMeta": [
     {
       "lastModTime": 1489653263431,
       "synId": 162,
       "synTable": "user",
       "userId": 111,
       "version": 8
     },
     {
       "lastModTime": 1489655096628,
       "synId": 163,
       "synTable": "Usercard",
       "userId": 111,
       "version": 7
     },
     {
       "lastModTime": 1489655096631,
       "synId": 164,
       "synTable": "Userlearningstyle",
       "userId": 111,
       "version": 7
     },
     {
       "lastModTime": 1489653263439,
       "synId": 165,
       "synTable": "usertestcount",
       "userId": 111,
       "version": 3
     },
     {
       "lastModTime": 1489653263442,
       "synId": 166,
       "synTable": "userresource",
       "userId": 111,
       "version": 3
     },
     {
       "lastModTime": 1489655096635,
       "synId": 167,
       "synTable": "usertest",
       "userId": 111,
       "version": 7
     },
     {
       "lastModTime": 1489653263479,
       "synId": 168,
       "synTable": "userword",
       "userId": 111,
       "version": 3
     }
   ]
 },
 "meta": {
   "message": "success",
   "status": 1
 }
}
  • 失败
status message
3 参数有误
4 token值无效
5 json数据格式或者数据类型有误!
3000 数据同步失败, token值有误

6.轨迹数据回收接口

  • 分支节点 : /syn/trackdatas
  • 请求方式 : POST
  • 请求参数
key 类型 说明
token String
json String json格式数据
  • json格式数据格式
    • 其中userBehaviour、userLogin不区分大小写
{   
  "trackData":{
    "userBehaviour":[
      {"userBehaviourId":1,"userId":24,"dowhat":"打豆豆","dowhen":"2017-03-25 02:36:23","dowhere":5},
      {"userBehaviourId":2,"userId":24,"dowhat":"练习","dowhen":"2017-03-25 11:58:23","dowhere":3},
      {"userBehaviourId":3,"userId":24,"dowhat":"看视频","dowhen":"2017-03-25 08:52:23","dowhere":2},
      {"userBehaviourId":4,"userId":24,"dowhat":"看图片","dowhen":"2017-03-25 12:01:23","dowhere":4}
     ],
    "userLogin":[
      {"userLoginId":1,"userId":24,"loginState":3,"loginTime":"2017-03-25 02:36:23","logoutTime":"2017-03-26 03:32:23"},
      {"userLoginId":1,"userId":24,"loginState":3,"loginTime":"2017-03-25 02:36:23","logoutTime":"2017-03-26 03:32:23"},
      {"userLoginId":1,"userId":24,"loginState":3,"loginTime":"2017-03-25 02:36:23","logoutTime":"2017-03-26 03:32:23"},
      {"userLoginId":1,"userId":24,"loginState":3,"loginTime":"2017-03-25 02:36:23","logoutTime":"2017-03-26 03:32:23"},
      {"userLoginId":1,"userId":24,"loginState":3,"loginTime":"2017-03-25 02:36:23","logoutTime":"2017-03-26 03:32:23"}
     ]
  } 
}
  • 响应结果:
  • 成功
{
  "meta": {
    "status": 1,
    "message": "success"
  },
  "data": null
}
  • 失败
status message
3 参数有误
4 token值无效
5 json数据格式或者数据类型有误!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • 第一次操作数据:用户id:101用户名:wangerxiao 注册接口 返回数据: 登录接口 返回数据: 请求同步...
    zlcook阅读 516评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,934评论 6 13
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,373评论 0 17
  • 大昭寺前,我虔诚注视, 希望佛能指点迷津,给予我一些人生的答案。 我问佛:我和他前世可曾遇见? 佛曰:前生已逝,今...
    瑜伽阅读思齐阅读 316评论 0 2