第一次APP接口开发全过程详细总结与经验分享

2024-12-16 0 231

APP后台接口的开发看似繁复且神秘,实则至关重要,它如同桥梁般将APP与数据库紧密相连。在此过程中,从需求分析到成品交付,再到后续的思考,每个环节都充满了探讨的价值。

需求分析与整理至关重要

APP后台接口开发,需求分析是首要步骤。当产品经理提供需求文档和APP原型图,我需要理清自己的工作内容。比如,人员续保这个功能模块,虽然难度较大,却具有代表性。它涉及复杂的数据表结构和判断规则,起初我如同迷失方向的蜜蜂,是客户的指导让我逐步掌握了方法。这使我明白,面对复杂的需求,更要细致入微,主动与客户沟通。每个功能模块都像是一个待解的谜题,若不仔细分析,后续工作将陷入混乱。若不进行充分的需求分析就编写接口,往往会导致事倍功半。

第一次APP接口开发全过程详细总结与经验分享

深入需求分析后,我们会发现工作量可能远超预期。以人员续保模块为例,即便查阅了业务系统代码,许多续保规则仍显不足。在这一阶段,全面掌握规则内容至关重要,否则后续工作将如同无根之木。

接口功能UML建模

我曾因编写接口时遭遇损失,因此深刻体会到UML建模的必要性。面对如人员续保这类复杂的模块,若不先进行建模便直接编码,所写代码必定庞大且难以理解。在此过程中,必须对判断规则进行细致分析。这并非易事,每个判断都可能对后续的表操作产生重要影响。

UML建模有助于将复杂的逻辑变得直观可见。举例来说,当处理多个数据表之间的关联时,借助建模,我们能更清晰地把握数据的流动和相互关系,这比单纯在脑海中想象要高效得多。尽管这一过程并不直接生成代码,但它却是接口开发的基础,绝不可忽视。

编写接口开发文档

刚开始编写接口开发文档时,我毫无头绪,就像一个无助的孩子。由于从未涉足,我不知从何着手。幸亏向项目经理请教,才得以顺利完成。这项工作在APP开发过程中至关重要,它是团队沟通不可或缺的依据。

--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开发的整体进度。

代码块语法与测试

代码编写需遵循plsql标准。接口开发时,判断逻辑至关重要。以人员续保模块为例,必须先确保所有判断规则满足条件,方可执行表的增删改查。代码完成后,必须进行测试。测试时,要勇于尝试各种输入,不论是对还是错,这是逐个查找并填补漏洞的过程。

调试存储过程是一项需要耐心的挑战。以人员续保模块为例,其流程繁杂,必须逐个环节进行测试,不能急于求成。每一个逻辑判断,每一句查询语句都可能潜藏问题,都得小心处理。

第一次APP接口开发全过程详细总结与经验分享

修改完善接口文档

接口开发一旦完成,便需着手对先前编写的文档进行细致的完善。此时,APP端已依据初始文档实现了初步的开发成果。以人员续保功能模块为例,先前文档仅提供了大致的指导,而现在则需明确具体的参数等细节。

这个过程难免有些麻烦,主要涉及对比前后差异等事项。然而,只有确保文档修改得既完善又准确,后续的开发工作才能更加顺畅。这就像是对灯塔进行校准,确保APP开发的航船能够沿着正确的航线前进。

第一次APP接口开发全过程详细总结与经验分享

项目的最终部署与收获

APP端完成模型与功能后,便进入联调阶段。测试无误后,再将测试库的接口程序迁移至正式库。这一过程需格外小心,如同将实验室成果推向市场。同时,APP端还需将程序部署到正式版本,供用户使用。

第一次APP接口开发全过程详细总结与经验分享

开发完整个APP后,我发现实际开发过程与预期相去甚远。比如,在编写接口判断逻辑时,尽管进展顺利,我仍在考虑这会对数据库性能产生何种影响。此外,判断逻辑、查询语句、HTTP请求连接等方面,还有许多提升空间。与客户和团队成员的沟通也需改进。我想请教大家,在APP开发过程中,哪一部分最容易出错?以及如何避免这些问题?欢迎点赞分享,让我们共同探讨。

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 行业资讯 第一次APP接口开发全过程详细总结与经验分享 https://www.7claw.com/2803052.html

七爪网源码交易平台

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务