河工APP文档

来源:互联网 发布:gtp吉他谱软件 编辑:程序博客网 时间:2024/06/11 21:53

数据API接口

1,登录

访问路径URL:http://192.168.2.156:8089/api/Login

请求方式:POST

请求头内容:

{    'Accept': 'application/json',    'Content-Type': 'application/json',}

请求参数:

name 登录用户名
pwd 登录密码
返回值:

{    success:true,    id:"用户UID",    token:"用户access_token"}

2,获取Room数据

访问路径URL:http://192.168.2.156:8089/api/Room

请求方式:GET

请求头内容:

{    'Accept': 'application/json',    'Content-Type': 'application/json',    'timespan':"数据时间戳",}

timespan为当前数据时间戳,用于更新数据信息。第一次请求是值为0。非第一次请是,填写上次数据返回的时间戳。

请求参数:无

返回值:

{    success:true,    timespan:'当前数据时间戳',//下次刷新数据是,需要提交这个时间戳    datalist:[        {            roomID:1,            roomName:'101',            roomType:0,            roomTypeName:'宿舍',            buildingID:1,            buildingName:'1号楼',            className:'16移动应用开发',            teacherName:'小李',            state:'',//此字段非业务数据,只是标注当前数据处理状态'add','updata','delete'        },        ...    ]}

3,获取检查项

请求路径URL:http://192.168.2.156:8089/api/CkeckItem

请求方式:GET

请求头内容:

{    'Accept': 'application/json',    'Content-Type': 'application/json',    'timespan':"时间戳",}

请求参数:无

返回值:

{    success:true,    timespan:'当前数据时间戳',//下次刷新数据是,需要提交这个时间戳    datalist:[        {            checkID:1,            checkName:'地面卫生',            roomType:0,            sectionID:0,            sectionName:'常规检查项',            state:'',//此字段非业务数据,只是标注当前数据处理状态'add','updata','delete'        },        ...    ]}

4,提交检查结果

请求URL:http://192.168.2.156:8089/api/CheckRecord

请求方式:POST

请求头内容:

{    'Accept': 'application/json',    'Content-Type': 'application/json',    'uid':'你的uid',    'token':'你的token',}

提交参数,检查结果数组,

[    checkResult1,]

提交元数据说明

{    room:{        roomID:1,    },    checkItems:[        {            checkID:1,            checkState:true,            checkImage:'base64格式的图片',//可选字段        },        ...    ],    result:true,    date:'时间字符串,格式为YYYY-MM-DD'}

返回值:

{    success:true,}

5,使用方法

post提交的数据需要使用JSON进行编码

//1,首先构造请求头数据对象const headers = {  'Accept': 'application/json',  'Content-Type': 'application/json',};//2,构造post参数对象const postValues = {  name: username,  pwd: password,};//3,对post参数进行JSON编码const jsonData = JSON.stringify(postValues);//4,开始post请求fetch(url, {  method: 'POST',  headers:headers,  body: jsonData,}).then((response) => response.json()).then((responseJson) => {  console.log(responseJson);}).catch((error) => {  console.error(error);});

数据服务层设计稿

数据层服务是整个App的基础,App的所有页面和功能都是基于数据服务进行构建的。

数据服务是开发中的第一步,非常重要,关于数据服务的设计方法,之前已经讲解过,这里只重点强调两种情况:

同步数据操作
异步数据操作
数据操作过程由数据服务对象Manager进行封装,对于操作过程,有同步和异步的区别。除内存操作为,其余所有操作都为异步操作。例如:

  • Storage
  • Fetch
  • SQLite
  • 文件I/O

封装同步数据操作时,数据操作结果通过方法返回值进行返回。

封装异步数据操作时,数据操作结果通过事件回调函数携带的参数进行返回。

1,设计元数据

元数据是App中基础业务数据,不可再分割。一个App根据业务需要,可能需要多个元数据支撑。

更具业务分析,此App需要4种元数据:

  • UserInfo
  • Room
  • CheckItem
  • CheckResult

UserInfo

{    uid:'xxxxxx',    token:'xxxxxx',}字段说明字段名 作用  备注uid 用户唯一ID  通过登录请求获取token   用户权限令牌  通过登录请求获取

Room

{    roomID:1,    roomName:'101',    roomType:0,    roomTypeName:'宿舍',    buildingID:1,    buildingName:'1号楼',    className:'16移动应用开发',    teacherName:'小李',}

字段说明:

字段名 作用 备注 roomID 房间主键ID 房间唯一标识,自增 roomName 房间名 roomType 房间类型ID 0为宿舍,1为教室 roomTypeName 房间类型名称 buildingID 房间所属建筑物ID buildingName 房间所属建筑物名称 className 房间所属班级 teacherName 房间所属辅导员

CheckItem

{    checkID:1,    checkName:'地面卫生',    roomType:0,    sectionID:0,    sectionName:'常规检查项',    checkResult:true,}

字段说明:

字段名 作用 备注 checkID 检查项ID 唯一 checkName 检查项名称 roomType 检查项所属房间类型 sectionID 检查项类别ID 0为常规检查项,1为安全检查项 sectionName 检查项类别名 checkResult 检查结果 true为合格,false为不合格

CheckResult

{    id:1,    room:room,    checkItems:[        checkItem,        ...    ],    result:true,    date:'时间字符串,格式为YYYY-MM-DD',    submit:false,}

字段说明:

字段名 作用 备注 id 数据唯一标识 数据库主键自增 room 房间元数据对象 checkItems 检查结果 数据组,数组中每个元素为检查项元数据 result 房间检查结果 已经检查规则对检查项进行计算,得出检查结果 date 检查时间 submit 检查结果是否上传服务器 true为未上传,false为已上传

2,设计数据服务对象

数据服务对象的作用是对元数据的相关操作进行封装。依照元数据的设计,我们设计4个数据服务对象

  • UserManager
  • RoomManager
  • CheckItemManager
  • CheckResultManager

在设计数据服务对象时,要从以下两个方面进行考虑

  • 需要为上层容器组件提供哪些数据
  • 需要为上层容器组件提供哪些功能
  • 在上传组件调用数据服务对象是有哪些数据交互

我们首先强调一个原则,各个数据服务对象直接是互不知晓的。如果遇到一个数据服务对象需要使用另一个数据服务对象中的数据的情况,我们需要将数据保存在系统级服务中:stroage或sqlite中。

UserManager

//登录功能login(user,loginResultCallBack);参数说明:user,登录所需的数据,为一个对象{    username:'用户输入的用户名',    pwd:'用户输入的密码'}loginResultCallBack,登录完成事件回调函数。(result,message)=>voidresult:登录结果,true为成功,false为失败。message:失败原因,当成功时,值为空。

RoomManager

//更新本地Room数据updateRoom(resultCallBack);参数说明:resultCallBack,为更新结果回调函数(result,message)=>voidresult:更新结果,true为成功,false为失败。message:失败原因,当成功时,值为空。
//获取房间所有类型getRoomTypes(callBack);参数说明:callBack为查询结果回调函数,类型为(roomTypes,message)=>voidroomTypes,查询结果数组,数组中每个元素为roomType对象{    roomTypeID:0,    roomTypeName:'xxx',}当查询失败时,roomTypes值为nullmessage为失败原因
//通过房间类型,获取该类型下的所有建筑物getBuildings(roomTypeID,callBack);参数说明:roomTypeID:房间类型IDcallBack为查询结果回调函数,类型为(buildings,message)=>voidbuildings,查询结果数组,数组中每个元素为roomType对象{    buildingName:'xxx',}当查询失败时,buildings值为nullmessage为失败原因
//通过房间类型和建筑物ID获取所有房间getRooms(roomTypeID,buildingName,callBack);callBack为查询结果回调函数,类型为(rooms,message)=>voidrooms,查询结果数组,数组中每个元素为rooms对象当查询失败时,rooms值为nullmessage为失败原因CheckItemManager
//更新本地CheckItem数据updateCheckItem(resultCallBack);参数说明:resultCallBack,为更新结果回调函数(result,message)=>voidresult:更新结果,true为成功,false为失败。message:失败原因,当成功时,值为空。
//通过房间对象,获取相应的检查项getCheckItems(room,callBack);参数说明room:room元数据对象callBack:为查询结果回调函数,类型为(checkItems,message)=>voidcheckItems,查询结果数组,数组中每个元素为checkItems对象当查询失败时,checkItems值为nullmessage为失败原因

CheckResultManager

//添加检查结果addCheckResult(checkResult,resultCallBack);参数说明checkResult:检查结果元数据resultCallBack,为操作结果回调函数(result,message)=>voidresult:更新结果,true为成功,false为失败。message:失败原因,当成功时,值为空。
//保存修改后的检查结果saveCheckResult(checkResult,resultCallBack);参数说明checkResult:检查结果元数据resultCallBack,为操作结果回调函数(result,message)=>voidresult:更新结果,true为成功,false为失败。message:失败原因,当成功时,值为空。
//删除检查结果deleteCheckResult(checkResultIDs,resultCallBack);参数说明checkResultIDs:检查结果ID数组resultCallBack,为操作结果回调函数(result,message)=>voidresult:更新结果,true为成功,false为失败。message:失败原因,当成功时,值为空。
//根据roomType获取相应检查结果getCheckResults(roomType,resultCallBack);参数说明roomType:房间类型IDresultCallBack,为操作结果回调函数(checkResults,message)=>voidcheckResults:当前类型下的检查结果数组,数组中每一个元素为checkResult元数据对象message:失败原因,当成功时,值为空。
//提交检查结果到服务器postCheckResults(checkResultIDs,resultCallBack);参数说明checkResultIDs:检查结果ID数组resultCallBack,为操作结果回调函数(result,message)=>voidresult:更新结果,true为成功,false为失败。message:失败原因,当成功时,值为空。
//添加监听者,监听数据变化事件addListener(callBack);参数说明callBack,为操作结果回调函数,当数据发送变化时会调用(void)=>void
原创粉丝点击