河工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:'小李',}
字段说明:
CheckItem
{ checkID:1, checkName:'地面卫生', roomType:0, sectionID:0, sectionName:'常规检查项', checkResult:true,}
字段说明:
CheckResult
{ id:1, room:room, checkItems:[ checkItem, ... ], result:true, date:'时间字符串,格式为YYYY-MM-DD', submit: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
- 河工APP文档
- 河工大校赛终结
- 河工大校赛总结
- 河工大校赛蹭赛记!
- 河工大校赛
- 河工大校赛补题
- App Manifest 文档翻译
- APP 接口保护文档
- APP文档的导入
- app-文档预览
- app接口文档(参考)
- app开发文档范文
- app接口文档模板
- 读写配置文档app.config
- 吃货876APP参考文档
- app Icon尺寸官方文档
- Android APP开发文档模板
- Android官方文档-App Widgets
- 如何在面试过程中提升实力
- 杭电第一次多校赛_1001_Add_More_Zero_2017_7_25
- 武汉大学国际软件学院夏令营笔试和面试简介
- 用户资源访问
- Java多线程(一)——实现多线程的两种方式
- 河工APP文档
- 散列
- HA高可用集群(ricci+luci+fence_virted)
- HDU 2859 Phalanx (DP)
- 百练_4016:班级排名
- Gradle for Android
- javascript之数组操作
- 游戏开发中的人工智能(十三):不确定状态下的决策:贝叶斯技术
- HDU 6043 KazaQ's Socks 【规律】