• 关于平湖人社APP后台开发总结
  • APP后台接口开发我总结出以下几个部分:
    • 需求分析与整理
    • 分析业务需求涉及的模块功能与数据库关联表
    • 接口开发文档大致编写并提交产品与APP开发人员
      • 1.主要是webservise 地址:http://XXXX/services/SbcxWebservice?wsdl
      • 2.接口函数统一为 sbp_sbcx_XXXX
      • 3.传入参数: 传入参数全为Stirng类型,格式为json字符串,基本格式为(传出类似不列出):
      • 4.数据字典 :对部分字段进行补充示意
    • 存储过程接口测试
    • 接口开发文档完善细致编写并提交产品与APP开发人员
    • APP端完成模块功能后联合测试调整
    • 完成各项测试后上线正式版本
    • 待提升的地方还有很多:
      • 判断逻辑有待优化
      • 查询语句有待优化
      • http请求连接方面有待加深
      • plsql语法有待学习
      • 与客户,项目成员交流有待提升(毕竟沟通的好会让开发事半功倍!切身体会啊)

关于平湖人社APP后台开发总结

这是我第一次做联合开发,对于多部门多人员合作开发项目我这个才毕业没多久的新人菜鸟还是有很多挑战与困难的,不过只有在实际项目开发中才能学到东西.话不多说,我们直奔主题.(忽略我使用英文标点符号,开发不易啊…)

APP后台接口开发我总结出以下几个部分:

  • 需求分析与整理
  • 分析业务需求涉及的模块功能与数据库关联表
  • 接口开发文档大致编写并提交产品与APP开发人员
  • 存储过程接口编写
  • 存储过程接口测试
  • APP端完成模块功能后联合测试调整
  • 完成各项测试后上线正式版本

需求分析与整理

需求分析主要是我在现场与客户协商探讨分析大体上需要完成的功能和APP原型,然后整理后前期需求给产品经理,后产品过来与客户再进行商讨具体功能之类事宜.我主要是了解大体上要做的东西和业务系统之间的区别关联,方便日后去参考业务系统判断编写规则.这期间我就要准备相关的接口编写事宜了,大体的接口编写我其实是不了解的,之前都没接触过,之后一点一点的询问项目经理,好在项目经理跟我说之前其他项目组曾今做个接口开发的模板我可以去借鉴下.这就我开始接口开发的准备了.

分析业务需求涉及的模块功能与数据库关联表

在产品经理整理好需求文档和APP原型图发于我后开始分析自己要完成的任务有哪些
这里我就取APP中最主要的功能模块–人员续保做实例.
这个功能主要是用于人员续保操作,其中涉及的数据表结构多,判断规则多,完成难度大.当然也是我花费时间最多的功能了. 主要很多续保的规则我通过业务系统代码来看也是不够的,好在客户理解续保的麻烦跟我很细致的解说并在后续开发测试中不予余力的提供帮助,非常感谢他们.在完成续保需求分析后,我先不急着编写接口,主要是现在写也写不好,必须要先进行接口功能UML建模(其实是之前的接口编写吃过亏,没有细致分析判断规则导致代码十分臃肿,不易于阅读理解…)所以建模很重要!!!有助于理解复杂关系判断.

部分判断流程图:

Created with Raphaël 2.1.2开始续保校验人员单位信息/基数范围/险种类型...是否符合判断规则?校验参保单位参保情况/工伤生育可多单位参保是否符合判断规则?校验灵活人员单工伤/特殊企业不可参保是否符合判断规则?插入数据库数据是否插入成功?续保成功yesnoyesnoyesnoyesno

接口开发文档大致编写并提交产品与APP开发人员

接口开发文档以前也是没有写过的,难以下笔啊.一样是询问项目经理完成的…

1.主要是webservise 地址:http://XXXX/services/SbcxWebservice?wsdl

2.接口函数统一为 sbp_sbcx_XXXX

3.传入参数: 传入参数全为Stirng类型,格式为json字符串,基本格式为(传出类似不列出):

字段名称 类型 可否为空 字段说明
jhjd string 交换节点
sbbh string 社保编码
certno string 身份证号
jylx string 交易类型

json格式内容:{“jhjd”:”330482”,”sbbh”:”000001”,” certno “:”330425199009098787”,”jylx”:”1”}

4.数据字典 :对部分字段进行补充示意

代码块语法遵循标准plsql代码,贴出部分代码吧(也就是存储过程编写):

--1007人员续保申报Procedure sbp_sbcx_1007(as_inmsg in long, as_outmsg out clob) isal_inmsg      long;j_JsonmainIn  Json.Jsonstructobj; --主信息JSONRet_ErrCode   varchar2(10); --错误代码Ret_Errmsg    varchar2(32670); --提示信息j_JsonmainOut Json.Jsonstructobj; --主信息JSONj_Json        Json.Jsonstructobj; --主信息JSONt_Array       Sbp_Public.t_Varchar2;iv_dwbm       varchar2(30);iv_sbbh       varchar2(30);iv_sfzh       varchar2(30);iv_xm         varchar2(30);iv_xb         varchar2(4);iv_csrq  varchar2(30); --出生日期        iv_hkxz  varchar2(30); --户口性质        iv_lxdh  varchar2(30); --联系电话        iv_lxdz  varchar2(50);-- 联系地址        iv_ygxz  varchar2(30); --用工性质        iv_jfjs  varchar2(30);--缴费基数         iv_xbyy  varchar2(30); --续保原因   BeginRet_ErrCode := 'B00';Ret_Errmsg  := null;--判断传入参数app_sjjc.P_Dissemble('1007','1',as_inmsg,Ret_ErrCode,Ret_Errmsg);if Ret_ErrCode = 'ERROR' thensbp_err(Ret_ErrCode, Ret_Errmsg, as_outmsg);Return;end if;---解包al_inmsg := as_inmsg;---转换成jsonj_JsonmainIn := Json.String2json(al_inmsg, '"'); --转换成JSONiv_dwbm := Json.Getattrvalue(j_JsonmainIn, 'dwbm'); --取得单位编码;iv_sbbh := Json.Getattrvalue(j_JsonmainIn, 'sbbh'); --取得身份证号iv_sfzh := Json.Getattrvalue(j_JsonmainIn, 'zjhm'); --取得身份证号iv_xm   := Json.Getattrvalue(j_JsonmainIn, 'xm'); --取得姓名iv_csrq := Json.Getattrvalue(j_JsonmainIn, 'csrq');iv_hkxz := Json.Getattrvalue(j_JsonmainIn, 'hkxz');iv_lxdh := Json.Getattrvalue(j_JsonmainIn, 'lxdh');iv_lxdz := Json.Getattrvalue(j_JsonmainIn, 'lxdz');iv_ygxz := Json.Getattrvalue(j_JsonmainIn, 'ygxz');iv_jfjs := Json.Getattrvalue(j_JsonmainIn, 'jfjs');......begin  select * into rec_ac01 from ac01 where aae135 = iv_sfzh;select aaz001 into v_aaz001 from ab01 where aab001 = iv_dwbm;exceptionwhen others then Ret_ErrCode := 'ERROR';Ret_Errmsg  := '未找到人员信息或单位信息';sbp_err(Ret_ErrCode, Ret_Errmsg, as_outmsg);Return;end;  select aab019 into v_aab019 from ab01 where aab001 = iv_dwbm;if v_aab019 = '99' thenRet_ErrCode := 'ERROR';Ret_Errmsg  := '行业统筹类型单位不允许手机参保,请去社保中心办理';sbp_err(Ret_ErrCode, Ret_Errmsg, as_outmsg);Return;end if;......-- ac02 无信息--插入ac21select sq_aaz308.nextval into rec_ac21.aaz308 from dual;rec_ac21.aaa027 := rec_ac01.aab301;rec_ac21.aac001 := nvl(i_aac001,rec_ac01.aac001); rec_ac21.aae140 := v_cbxz; rec_ac21.aae030 := n_aae002;rec_ac21.aic001 := 0; rec_ac21.eac070 := '0';rec_ac21.aac033 := to_char(sysdate,'yyyyMMdd');rec_ac21.aae206 := null;rec_ac21.aae011 := 'app';rec_ac21.aae036 := sysdate;select sb_prseno.nextval into rec_ac21.prseno from dual;select sq_aaz159.nextval into rec_ac21.aaz159 from dual;rec_ac21.aac050 := '01';rec_ac21.eaz132 := '1';rec_ac21.aac008 := '1';insert into ac21 values rec_ac21;......commit;Json.Newjsonobj(j_JsonmainOut, TRUE);j_JsonmainOut := Json.Addattr(j_JsonmainOut, 'recode', Ret_ErrCode); --交易结果j_JsonmainOut := Json.Addattr(j_JsonmainOut, 'remessage', Ret_Errmsg); --交易结果信息Json.Closejsonobj(j_JsonmainOut);--json转化成数据as_outmsg := Json.Json2string(j_JsonmainOut);Return;ExceptionWhen Others ThenRet_ErrCode := 'ERROR';Ret_Errmsg  := '交易异常出错:' || sqlerrm;sbp_err(Ret_ErrCode, Ret_Errmsg, as_outmsg);Return;End;

接口开发中主要的是对一些判断逻辑进行编写,当一切判断规则都符合后才进行表增删改查操作.

存储过程接口测试

写完接口肯定是先要自己这边测试下的啊,功能判断是否正确,这时候就瞎**输入可能的错误正确情况了… 存储过程的调试就一个一个试咯.

这里吐槽下续保的判断真是多啊,多到我都佩服制定这规则的人怎么想到这么细致的呢,什么脑子脑子脑…

接口开发文档完善细致编写并提交产品与APP开发人员

接口开发好了就要修改完善之前写的接口文档了,那个先前版本的文档是让APP端先进行大体开发写的(同步开发!),具体的参数现在要调整之类的.这期间也是有烦人事的,不过都是比对前后变化的问题. 然后就是发给产品和APP开发了,我这边稍稍喘口气,等APP端完成模型和功能再联调吧!

APP端完成模块功能后联合测试调整

联调是个尽出幺蛾子的过程,什么奇葩不可能不理解的错误都跳出来嘚瑟了.APP前端改,APP服务端改,我这边后台改,改,改…产品的消息不停啊.也是这个时候才能大规模发现问题不足.不过测试的妹子qq倒是加了不少=-=

完成各项测试后上线正式版本

等各项测试完成且确认没有问题后,将测试库的接口程序移植到正式库,APP端也将程序部署到正式版本供用户使用,一个完整的APP开发即结束了.

最后感觉一个APP的开发流程跟我之前想象中还是有很多区别的.比如大部分几乎所有的判断逻辑都是我在接口里写的,还以想java一样呢,不过确实写在存储过程里感觉更快一点呢…不知道对数据库性能有什么影响(待研究!)

待提升的地方还有很多:

判断逻辑有待优化

查询语句有待优化

http请求连接方面有待加深

plsql语法有待学习

与客户,项目成员交流有待提升(毕竟沟通的好会让开发事半功倍!切身体会啊)

第一次做APP接口开发过程总结相关推荐

  1. 做APP接口开发过程总结

    关于平湖人社APP后台开发总结 APP后台接口开发我总结出以下几个部分: 需求分析与整理 分析业务需求涉及的模块功能与数据库关联表 接口开发文档大致编写并提交产品与APP开发人员 1.主要是webse ...

  2. 使用PHP开发App接口的一些体会

    前言 做了1年半的PHP开发,对PHP写接口的一些注意事项和心得体会也是有一些的.有空就写下来分享一下,大部分参考别人的一些建议. 文档要写周全,需要的每个字段,规定是什么类型,什么含义要标柱清楚,写 ...

  3. php app接口id参数类型过滤,PHP开发APP接口---返回数据的封装类

    /** * app返回数据类 * 1.接受多维,缺少键名的数组, * 2.可由输入的format参数决定返回数据格式 * 例子:Response::show(200, 'success', $data ...

  4. 老总让做后台接口监控,我却开发了一个App

    最近投入到了一个新的项目中,是一个新的Android项目,项目涉及到智能聊天相关的功能,所以需要一个很好的接入层,总之肯定不能用通用的http协议来聊天. 手Q.微信等聊天软件,都会实现自己的一套协议 ...

  5. 基于PCI接口的数据采集卡!(第一次做的板卡)

    [板      名]    基于PCI接口的数据采集卡 [板大  小]   *X* 比标准PCI卡长点 [板层  数]   8 [输入接口] 100PIN外输入以及子板接口(AD子板) [输出接口] ...

  6. 记录 vue项目打包放入 hbuilder 做app真机测试时 无法请求后台服务接口

    1.因为发布app时 vue开发模式下配置的跨域是无效的,打包后会找不到接口 例如下面是之前的错误版: '/propertyCmsAPI': {target: 'http://192.168.1.11 ...

  7. 我是怎样在美团点评做App需求迭代的

    一.一人一个团队时期 我加入大众点评的时候,我所在的事业部刚刚分拆出App的业务线,刚好我是这个事业部的第一个iOS开发.所以当时的情况是一个人一个团队,而且只在点评这一款App上开发,版本迭代的节奏 ...

  8. 国行iphone第一次安装APP网络状况

    国行手机第一次安装APP,会有请求网络权限的一个弹框出现,在这期间APP是没有任何网络连接的. 想必大部分APP的需求和这个逻辑有冲突. 先推荐一个链接:http://www.cocoachina.c ...

  9. php写简单接口_使用PHP如何编写简单的App接口

    这篇文章主要介绍了使用PHP编写简单的App接口的一些个人的步骤以及经验总结,有需要的小伙伴可以参考下 本篇是笔记尝试写的第一个PHP接口,并在iOS开发中尝试应用测试.今天给大家分享如何自己写接口来 ...

  10. php 面向接口,php开发app接口

    一.app接口简介:与PHP面向对象的接口不同,是通信接口地址 1.条件: 1)接口地址 2)接口文件 3)接口数据 2.如何通信 1)类似BS模式 3.客户端app通信格式区别:xml和json 1 ...

最新文章

  1. ubuntu+php+mysql+apache安装配置
  2. java中为什么不能通过getClass().getName()获取父类的类名
  3. json中怎么去掉[]外的引号_SEO优化中怎么做站内和站外的锚文本
  4. [html] 解释下你对GBK和UTF-8的理解?并说说页面上产生乱码的可能原因
  5. .net core + headless chrome实现动态网页爬虫
  6. 2821: 作诗(Poetize)
  7. 10-Mybatis 多表查询之多对多
  8. java中string类面试题_java中String类的面试题大全含答案
  9. Tip: 强制 Outlook 用户使用缓存模式
  10. [linux]ssh配置文件ssh_config和sshd_config的区别
  11. 20个使用 Java CompletableFuture的示例,不服不行
  12. 第一季度我国电子信息制造业增加值同比增长14.9%
  13. linux proc 目录清理_/proc目录造成linux根目录爆满
  14. 企业微信怎么通过手机号添加好友?企业微信添加好友话术!
  15. baidu 百度在搞什么啊?
  16. 今日头条推广入门必懂知识简介
  17. java中的arrayList(动态数组)与静态数组
  18. 磁力连接是如何接入DHT网络并下载文件的
  19. 中恒达软件测试,天线测试系统-恒达微波.PDF
  20. java 写的星际争霸_用java写星际争霸的ai

热门文章

  1. DelphiXE10.2.3 Firemonkey下窗体的编译异常处理
  2. FireMonkey Control的Paint顺序
  3. office 兼容包下载地址
  4. 一个java swt桌面程序开发到打包的总结(1)(收集)
  5. 使用Android Studio开发/调试Android源码
  6. CImageList用法介绍 (zz)
  7. 关于-宏碁4741G换固态硬盘SSD的一些注意事项
  8. 故障处理 软件 需求_高线轧机轴承振动在线监测与故障诊断分析
  9. 在线投稿审稿管理系统mysql_某期刊在线投稿审稿管理系统.doc
  10. Jasper报表导出pdf中文不显示——Font simsun is not available to the JVM. See the Javadoc for more det,已解决