CN108647033B - 一种开放平台的sdk自动打包方法 - Google Patents
一种开放平台的sdk自动打包方法 Download PDFInfo
- Publication number
- CN108647033B CN108647033B CN201810288774.7A CN201810288774A CN108647033B CN 108647033 B CN108647033 B CN 108647033B CN 201810288774 A CN201810288774 A CN 201810288774A CN 108647033 B CN108647033 B CN 108647033B
- Authority
- CN
- China
- Prior art keywords
- sdk
- code
- data
- interface
- packaging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种开放平台的SDK自动打包方法,涉及开放平台SDK技术领域包括如下步骤:S1:API管理中心录入第三方平台的需求信息,根据需求信息自动生成XML文件;S2:XML文件被JAVA代码读到内存中成为与自动生成代码引擎的数据结构相符合的数据;S3:将内存中的数据传递到自动生成代码引擎生成SDK接口代码;S4:用Java代码将SDK接口部分代码生成ant打包脚本;S5:通过Java代码发送指令来运行ant打包脚本;S6:通过ant脚本编译整个SDK架构所包含的代码,生成.jar包。S7:将整个SDK架构里面的.jar包和配置文件共同打包成zip包。本发明解决现有技术中SDK都是通过人工编码,导致每次对SDK开发和更新需要大量的时间且需要耗费大量人力的问题。
Description
技术领域
本发明涉及开放平台SDK技术领域,尤其涉及一种开放平台的SDK自动打包方法。
背景技术
当前,金融机构通过互联网开放平台开放金融服务,具体以API形式供第三方平台调用,实现金融服务开放共享。为方便、快捷接入开放平台,开放平台通过SDK封装API通讯、数据传输等,减少第三方接入的难度、复杂度,缩短第三方接入时间,快速发展业务,满足互联网产品的发展日新月异的需求。而SDK封装基础服务工作量大,占用这个服务开放的开发时间的三分之一,为保障产品服务高质量、快速投产上线,缩短整个产品周期,需要在业务处理开发之外的工作通过自动化、配置化和开发任务并行处理来解决,让产品开发周期时间用在业务处理开发,保证质量,满足银行业务发展需要。
目前SDK代码分层不够明确,公共使用代码、产品更新和新增不影响的通讯、数据加解密等代码,导致所有的SDK代码都需要在更新和新增后进行测试,增加了代码走查和测试的工作。SDK开发时间太长,占用产品开发总时间的百分比过高,严重影响了产品营销和使用,不满足互联网发展的需求。
并且,现有的SDK是通过程序员人工编码形成,导致每次新增产品或产品服务接口变化都时需要开发人员对SDK开发和更新,需要对代码进行走查、版本管理、测试审查等流程。现有SDK公共代码和接口代码维护均在一起,每次更新和开发,需要进行对整体代码的联调测试。
发明内容
本发明的目的在于:为解决现有技术中SDK都是通过人工编码,导致每次对SDK开发和更新需要大量的时间且需要耗费大量人力的问题,本发明提供一种开放平台的SDK自动打包方法。
本发明的及技术方案如下:
一种开放平台的SDK自动打包方法,包括如下步骤:
S1:API管理中心录入第三方平台的需求信息,根据需求信息自动生成XML文件;
S2:XML文件被JAVA代码读到内存中成为与自动生成代码引擎的数据结构相符合的数据;
S3:将S2中得到的数据传递到自动生成代码引擎生成SDK接口代码;
S4:用Java代码将SDK接口代码生成ant打包脚本;
S5:通过Java代码发送指令来运行ant打包脚本;
S6:通过ant脚本编译整个SDK架构所包含的代码,生成.jar包,其中,SDK架构所包含的代码包括SDK接口部分的代码和协议层代码以及数据校验层代码。
S7:将整个SDK架构里面的.jar包和配置文件共同打包成zip包;所示配置文件为第三方平台使用SDK时候需要配置的文件.properties,它包括证书密码、APPID、网络传输域名、证书传输类型、开放平台的公钥。
具体地,所述SDK接口代码包括SDK实体类和SDK接口类,SDK实体类作为SDK接口类方法的参数,供接入的第三方调用。
所述S3的具体步骤为:根据S2中数据关系生成导入包结构,然后根据S2中所得数据生成SDK接口类和SDK实体类;
具体地,SDK接口类的生成方法为:根据S2中数据中的接口名生成SDK接口类的调用方法和调用方法形式参数;
SDK实体类的生成方法为:根据S2中数据中的接口名生成SDK实体类名和根据S2中数据中的属性名生成SDK实体类的属性。
具体地,所述SDK架构包括:
SDK接口层单元,用于实现第三方平台的调用;
客户化配置单元,用于第三方平台配置公共信息;
接口数据校验规则引擎单元,用于第三方及输入的数据进行数据规范及业务规范校验;
安全处理单元,用于对传输过程中的数据进行签名和加密;
配置处理单元,用于将客户化配置单元配置的公共信息应用于SDK运行;
通讯处理单元,用于处理SDK与开放平台的传输通讯。
采用上述方案后,本发明的有益效果如下:
(1)SDK包在API更新和新增无需人工参与编码。SDK自动化后,在API新增和更新后无需人工编码,在API管理中心配置好新增或者更新接口信息,选择接口打包SDK,立即可生成SDK包提供测试,减少了开发人员参与,同时可实现接口的快速测试等。代码至少成千上万行,每一句代码之间都是有联系的,所有代码之间联系性非常强,一个标点出错程序都可能导致瘫痪,自动打包无需人工修改代码,节约了大量成本,同时提高了可靠性。
(2)缩小了产品开发周期,给予产品开发更多时间。API的自动生成是在接口开发完成后进行,以前人工编码需要1-3个星期开发完成,现在可立即生成,减少了非业务流程开发的时间,缩短了产品开发周期,能给予产品开发、测试更多时间,保证产品高质量上线。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本发明的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本发明的主旨。
图1为本发明的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术总SDK都是通过人工编码,导致每次对SDK开发和更新需要大量的时间且需要耗费大量人力的问题,本发明中,代码根据需求excel文档自动分析生成结构化的xml,把需求文档翻译成为生成JAVA代码需要的数据(其中包含代码之间的依赖关系和调用关系),API模板的构建以及根据模板利用自动生成代码引擎自动生成代码。根据自动生成代码引擎自动生成技术方案,技术实现是开发人员积极参与,辛勤劳动的工作成果,凝聚了开发人员的心血。SDK自动代码生成对于互联网机构能够快速适应产品迭代日新月异的需求,大大提高了生成效能和价值输出。值得一提的是,本发明中所说的java代码只是一种编码方式,本发明的方法在实现过程中,不限于java代码,还可以用php、python代码,同样可以达到本发明的效果。
具体而言,本发明的一种开放平台的SDK自动打包方法,包括如下步骤:
S1:API管理中心录入第三方平台的需求信息,根据需求信息自动生成XML文件;
S2:XML文件被JAVA代码读到内存中成为与自动生成代码引擎的数据结构相符合的数据;具体实施中,自动生成代码引擎可以采用freemaker模板引擎;
S3:将S2中得到的数据传递到自动生成代码引擎生成SDK接口代码;
所述SDK接口代码包括SDK实体类和SDK接口类,SDK实体类作为SDK接口类方法的参数,供接入的第三方调用;
所述S3的具体步骤为:根据S2中数据关系生成导入包结构,然后根据S2中所得数据生成SDK接口类和SDK实体类;
具体地,SDK接口类的生成方法为:根据S2中数据中的接口名生成SDK接口类的调用方法和调用方法形式参数;
SDK实体类的生成方法为:根据S2中数据中的接口名生成SDK实体类名和根据S2中数据中的属性名生成SDK实体类的属性。
S4:用Java代码将SDK接口部分代码生成ant打包脚本;
S5:通过Java代码发送指令来运行ant打包脚本;
S6:通过ant脚本编译整个SDK架构所包含的代码,生成.jar包,其中,SDK架构所包含的代码包括SDK接口部分的代码和协议层代码以及数据校验层代码。
所述SDK架构包括:
SDK接口层单元,用于实现第三方平台的调用;
客户化配置单元,用于第三方平台配置公共信息;
接口数据校验规则引擎单元,用于第三方及输入的数据进行数据规范及业务规范校验;
安全处理单元,用于对传输过程中的数据进行签名和加密;
配置处理单元,用于将客户化配置单元配置的公共信息应用于SDK运行;
通讯处理单元,用于处理SDK与开放平台的传输通讯。
S7:将整个SDK架构里面的.jar包和配置文件共同打包成zip包;所示配置文件为第三方平台使用SDK时候需要配置的文件.properties,它包括证书密码、APPID、网络传输域名、证书传输类型、开放平台的公钥。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何属于本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种开放平台的SDK自动打包方法,其特征在于,包括如下步骤:
S1:API管理中心录入第三方平台的需求信息,根据需求信息自动生成XML文件;
S2:XML文件被JAVA代码读到内存中成为与自动生成代码引擎的数据结构相符合的数据;
S3:将S2中得到的数据传递到自动生成代码引擎生成SDK接口代码;
S4:用Java代码将SDK接口代码生成ant打包脚本;
S5:通过Java代码发送指令来运行ant打包脚本;
S6:通过ant打包 脚本编译整个SDK架构所包含的代码,生成.jar包,其中,SDK架构所包含的代码包括SDK接口部分的代码和协议层代码以及数据校验层代码;
S7:将整个SDK架构里面的.jar包和配置文件共同打包成zip包;所示配置文件为第三方平台使用SDK时候需要配置的文件.properties,它包括证书密码、APPID、网络传输域名、证书传输类型、开放平台的公钥。
2.根据权利要求1所述的一种开放平台的SDK自动打包方法,其特征在于,所述SDK接口代码包括SDK实体类和SDK接口类,SDK实体类作为SDK接口类方法的参数,供接入的第三方调用。
3.根据权利要求2所述的一种开放平台的SDK自动打包方法,其特征在于,所述S3的具体步骤为:根据S2中数据关系生成导入包结构,然后根据S2中所得数据生成SDK接口类和SDK实体类;
具体地,SDK接口类的生成方法为:根据S2中数据中的接口名生成SDK接口类的调用方法和调用方法形式参数;
SDK实体类的生成方法为:根据S2中数据中的接口名生成SDK实体类名和根据S2中数据中的属性名生成SDK实体类的属性。
4.根据权利要求1所述的一种开放平台的SDK自动打包方法,其特征在于,所述SDK架构包括:
SDK接口层单元,用于实现第三方平台的调用;
客户化配置单元,用于第三方平台配置公共信息;
接口数据校验规则引擎单元,用于第三方及输入的数据进行数据规范及业务规范校验;
安全处理单元,用于对传输过程中的数据进行签名和加密;
配置处理单元,用于将客户化配置单元配置的公共信息应用于SDK运行;
通讯处理单元,用于处理SDK与开放平台的传输通讯。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810288774.7A CN108647033B (zh) | 2018-04-03 | 2018-04-03 | 一种开放平台的sdk自动打包方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810288774.7A CN108647033B (zh) | 2018-04-03 | 2018-04-03 | 一种开放平台的sdk自动打包方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647033A CN108647033A (zh) | 2018-10-12 |
CN108647033B true CN108647033B (zh) | 2021-06-29 |
Family
ID=63745544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810288774.7A Active CN108647033B (zh) | 2018-04-03 | 2018-04-03 | 一种开放平台的sdk自动打包方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647033B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968306A (zh) * | 2012-11-29 | 2013-03-13 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和*** |
CN105718251A (zh) * | 2014-12-03 | 2016-06-29 | 苏宁云商集团股份有限公司 | 多语言sdk自动化实现方法及*** |
US9448776B1 (en) * | 2015-01-08 | 2016-09-20 | AppNotch LLC | Method and apparatus for converting a website into a native mobile application |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011150430A (ja) * | 2010-01-19 | 2011-08-04 | Kyocera Mita Corp | Sdk配布パッケージ生成装置、sdk配布パッケージ生成方法、およびsdk配布パッケージ生成プログラム |
CN103235718A (zh) * | 2013-03-28 | 2013-08-07 | 迈普通信技术股份有限公司 | 一种远程过程调用rpc代码生成的方法及装置 |
CN103500087B (zh) * | 2013-09-17 | 2016-08-17 | 福建亿榕信息技术有限公司 | 一种基于maven插件和freemarker模版的代码生成方法及装置 |
CN103713896B (zh) * | 2013-12-17 | 2017-01-04 | 北京京东尚科信息技术有限公司 | 用于访问服务器的软件开发工具包生成方法及装置 |
CN103838572A (zh) * | 2013-12-20 | 2014-06-04 | 北京掌阔技术有限公司 | 一种安卓开发包的打包***和方法 |
US9560170B2 (en) * | 2014-03-21 | 2017-01-31 | Ptc Inc. | System and method of abstracting communication protocol using self-describing messages |
CN104360833A (zh) * | 2014-08-27 | 2015-02-18 | 北京中电华大电子设计有限责任公司 | 一种支持安全通道协议定制的java卡平台实现方法 |
CN104317587A (zh) * | 2014-10-22 | 2015-01-28 | 中国人民解放军国防科学技术大学 | 面向安卓移动设备的程序自动生成方法 |
CN105049532B (zh) * | 2015-08-28 | 2018-07-13 | 北京奇艺世纪科技有限公司 | 一种sdk包的打包方法及装置和下载方法及装置 |
CN106528069B (zh) * | 2015-09-15 | 2019-06-07 | 阿里巴巴集团控股有限公司 | Sdk集成方法和装置 |
CN105760721B (zh) * | 2016-01-29 | 2019-02-12 | 北京奇虎科技有限公司 | 一种软件加固方法和*** |
CN107092601B (zh) * | 2016-02-17 | 2021-03-23 | 创新先进技术有限公司 | 资源文件构建方法、资源文件应用方法及装置 |
CN106250164A (zh) * | 2016-08-16 | 2016-12-21 | 广州仕邦人力资源有限公司 | 一种基于需求文档的代码生成方法及装置 |
CN107066291A (zh) * | 2017-02-09 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 软件开发工具包的打包方法、装置及设备、可读介质 |
CN107066842A (zh) * | 2017-03-28 | 2017-08-18 | 福建天晴在线互动科技有限公司 | 一种加固sdk项目的方法及*** |
CN107291447B (zh) * | 2017-05-17 | 2018-09-07 | 四川新网银行股份有限公司 | 一种自动生成并发布sdk代码的方法 |
CN107678750A (zh) * | 2017-10-27 | 2018-02-09 | 北京腾云天下科技有限公司 | 一种sdk打包方法、计算设备及sdk打包*** |
-
2018
- 2018-04-03 CN CN201810288774.7A patent/CN108647033B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968306A (zh) * | 2012-11-29 | 2013-03-13 | 广东全通教育股份有限公司 | 一种基于数据模型驱动的代码自动生成方法和*** |
CN105718251A (zh) * | 2014-12-03 | 2016-06-29 | 苏宁云商集团股份有限公司 | 多语言sdk自动化实现方法及*** |
US9448776B1 (en) * | 2015-01-08 | 2016-09-20 | AppNotch LLC | Method and apparatus for converting a website into a native mobile application |
Also Published As
Publication number | Publication date |
---|---|
CN108647033A (zh) | 2018-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467951B2 (en) | System and method for implementing mainframe continuous integration continuous development | |
CN110781082A (zh) | 接口的测试用例的生成方法及装置、介质和设备 | |
CN101482817A (zh) | 基于黑盒的大粒度Java构件组装方法 | |
van Hoorn | Model-driven online capacity management for component-based software systems | |
CN108965375A (zh) | 服务调用代理控制***、方法、服务器及可读存储介质 | |
Saleh et al. | Hadoopmutator: A cloud-based mutation testing framework | |
CN111381863B (zh) | 基于区块链技术的app交易及自动化上线方法及上线*** | |
CN113590465A (zh) | 一种基于SDK自动生成mock服务的方法 | |
Zhou et al. | Legacy asset analysis and integration in model-driven soa solution | |
CN111078573A (zh) | 一种测试报文的生成方法及装置 | |
CN110443044A (zh) | 区块链客户端漏洞挖掘方法、装置、设备及存储介质 | |
Baryannis et al. | WSSL: a fluent calculus-based language for web service specifications | |
CN108647033B (zh) | 一种开放平台的sdk自动打包方法 | |
CN113032800A (zh) | 一种基于零知识证明的链上自动执行智能合约中间件*** | |
CN115811513A (zh) | 第三方接口请求设计方法、装置、存储介质 | |
CN112783791B (zh) | 接口测试案例的生成方法及装置 | |
Jamshidi et al. | Business process and software architecture model co-evolution patterns | |
Autili et al. | On the Model-driven Synthesis of Adaptable Choreographies. | |
Springborg et al. | Towards a secure API client generator for IoT devices | |
Mane et al. | A Domain Specific Language to Provide Middleware for Interoperability among SaaS and DaaS/DBaaS through a Metamodel Approach. | |
Buezas et al. | Umbra designer: Graphical modelling for telephony services | |
Ukić et al. | The influence of cyclomatic complexity distribution on the understandability of xtUML models | |
CN117574320B (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
Khan et al. | Ubiquitous application testing on cloud | |
CN115373655B (zh) | 一种基于标准化模板的信息协议代码自动生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |