关于平湖人社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建模(其实是之前的接口编写吃过亏,没有细致分析判断规则导致代码十分臃肿,不易于阅读理解…)所以建模很重要!!!有助于理解复杂关系判断.

部分判断流程图:


接口开发文档大致编写并提交产品与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) is

al_inmsg      long;
    j_JsonmainIn  Json.Jsonstructobj; --主信息JSON
    Ret_ErrCode   varchar2(10); --错误代码
    Ret_Errmsg    varchar2(32670); --提示信息
    j_JsonmainOut Json.Jsonstructobj; --主信息JSON
    j_Json        Json.Jsonstructobj; --主信息JSON
    t_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); --续保原因   
 Begin
 Ret_ErrCode := 'B00';
    Ret_Errmsg  := null;
    --判断传入参数
    app_sjjc.P_Dissemble('1007','1',as_inmsg,Ret_ErrCode,Ret_Errmsg);
    if Ret_ErrCode = 'ERROR' then
      sbp_err(Ret_ErrCode, Ret_Errmsg, as_outmsg);
      Return;
    end if;
    ---解包
    al_inmsg := as_inmsg;
    ---转换成json
    j_JsonmainIn := Json.String2json(al_inmsg, '"'); --转换成JSON

iv_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;
    exception
      when 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' then
         Ret_ErrCode := 'ERROR';
         Ret_Errmsg  := '行业统筹类型单位不允许手机参保,请去社保中心办理';
         sbp_err(Ret_ErrCode, Ret_Errmsg, as_outmsg);
         Return;
    end if;
    ......

-- ac02 无信息
       --插入ac21
        select 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;
  Exception
    When Others Then
      Ret_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. php app接口id参数类型过滤,PHP开发APP接口---返回数据的封装类

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

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

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

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

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

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

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

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

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

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

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

  7. 做微信还是做APP,两种选择的不同风险

    我创业后发现一个有意思的现象,看到我在经营微信号,在大互联网公司任职的朋友往往会问,"你现在改做纯内容了啊?"还有以前认识的网友(我的目标受众),也会问,"你们就这一个微 ...

  8. 利用STM32F103最小系统做C2接口离线烧录器

    前言 在做BLHeli_S电调的时候需要用下载器给EFM8BB21下载程序,这可能需要买C8051下载器.下载器下载也很麻烦.这就萌生出做一个C2接口的离线下载器的想法. 离线下载器想法: 1. 支持 ...

  9. php app接口开发,「PHP开发APP接口实战005」基础示例接口的实现一

    前一章,我们对接口参数基本定义做了一个简要说明.里面提到了几个示例接口,接下来,我们就来讲解这个几点个示例接口的具体实现. 「PHP开发APP接口实战004」基础响应参数说明 前言 由于我们的接口返回 ...

最新文章

  1. 请在请求中携带deviceid参数_日常工作中最容易犯的几个并发错误,你中了几个?...
  2. 漂亮表格的CSS定义
  3. Python-strace命令追踪ssh操作
  4. aix oracle监听配置_AIX系统中安装ORACLE,客户端连接时,监听会宕掉的问题
  5. 我精通Copula、CoVaR、GARCH、ARIMA、协整、VAR、DCC、BEKK、MES、SRISK、最优组合权重、模拟预测等模型
  6. mapabc 地图失效不能进行任何操作
  7. python的开发环境
  8. 逐向双碳:绿色计算的误区与正确打开方式
  9. vue项目 webpack-dev-server 报错
  10. 无人机飞控 ardupilot Copter-4.0.7 库示例
  11. DNS(域名解析系统)协议
  12. C++基础知识整理(面试热点)
  13. MDA110-16-ASEMI单臂共阳极整流模块MDA110-16
  14. TIA portal西门子博途中优化的DB块和标准DB块的区别
  15. 使用EasyPoi根据模板导出Excel或word文档
  16. mysql 以什么结尾查询_MySQL查询选择以某些字符/数字结尾的列值?
  17. H.264视频编码推荐的分辨率和码率配置表
  18. 初学者学习vue路由与无痕浏览
  19. Intel无线网卡Windows10中不能开启5G热点?
  20. 关于传统蒙古文系统的系列文章(二)

热门文章

  1. Kaggle | Titanic - Machine Learning from Disaster【泰坦尼克号生存预测】 | baseline及优秀notebook总结
  2. 七种武器:Collection 之 Google Guava
  3. iOS 无开发者账号怎么打包项目 供别人下载
  4. 中华唐氏小湾族2010年人口统计
  5. android contentResolver的使用
  6. 微信小程序中,数字三位加逗号及去逗号的方法
  7. win8.1启用ahci后蓝屏
  8. python苹果电脑下载_Python3 Mac版下载
  9. 微信小程序-长按复制、一键复制功能
  10. 什么是cookie以及cookie的特性、优缺点