本發(fā)明涉及計(jì)算機(jī),尤其涉及對(duì)外開放接口代碼生成方法及系統(tǒng)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)的快速發(fā)展,越來越多的企業(yè)和開發(fā)者需要將自己的服務(wù)和應(yīng)用程序?qū)ν忾_放,以實(shí)現(xiàn)更好的互聯(lián)互通和合作。然而,對(duì)外開放接口的開發(fā)過程通常繁瑣且耗時(shí),需要編寫大量重復(fù)的代碼,且接口不規(guī)范沒有統(tǒng)一的標(biāo)準(zhǔn)。為了解決該技術(shù)問題現(xiàn)提出一種外開放接口代碼生成方法及系統(tǒng)。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明提供了一種對(duì)外開放接口代碼生成方法,能夠快速、自動(dòng)地生成對(duì)外開放接口所需的代碼,并通過簽名驗(yàn)證確保接口調(diào)用時(shí)的安全性和身份合法性。本發(fā)明的方法專注于簡(jiǎn)化和標(biāo)準(zhǔn)化接口對(duì)外開放的過程,顯著減少了手動(dòng)編寫重復(fù)代碼的工作量,適用于需要快速搭建安全、可靠的對(duì)外接口的各類應(yīng)用場(chǎng)景。
2、為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了如下的技術(shù)方案:
3、第一方面,在本發(fā)明提供的一個(gè)實(shí)施例中,提供了對(duì)外開放接口代碼生成方法,該方法包括以下步驟:
4、基于數(shù)據(jù)庫表及配置生成entity層、dao層、dto層、service層、controller層和ui層的業(yè)務(wù)代碼;
5、基于數(shù)據(jù)庫表及配置生成安全標(biāo)準(zhǔn)化的對(duì)外開放接口;
6、生成的對(duì)外開放接口被請(qǐng)求時(shí),進(jìn)行簽名驗(yàn)證和qps限制。
7、本發(fā)明基于數(shù)據(jù)庫表及配置直接生成包含entity層、dao層、dto層、service層、controller層和ui層的業(yè)務(wù)代碼,基于數(shù)據(jù)庫表及配置生成安全標(biāo)準(zhǔn)化的對(duì)外開放接口;其中,生成的對(duì)外開放接口被請(qǐng)求時(shí),進(jìn)行簽名驗(yàn)證和qps限制;本發(fā)明通過簽名驗(yàn)證確保了對(duì)外接口的安全性和身份合法性;自動(dòng)化生成代碼,減少了手動(dòng)編寫重復(fù)代碼的工作量;提高開發(fā)效率,節(jié)省了開發(fā)人員的時(shí)間。
8、作為本發(fā)明的進(jìn)一步方案,生成的所述對(duì)外開放的接口每次請(qǐng)求時(shí)進(jìn)行請(qǐng)求簽名驗(yàn)證,包括如下步驟:
9、數(shù)據(jù)庫表分析,分析數(shù)據(jù)庫表結(jié)構(gòu),理解數(shù)據(jù)庫表的字段、類型、主鍵和外鍵關(guān)系;
10、為每個(gè)表設(shè)計(jì)對(duì)應(yīng)的實(shí)體類,實(shí)體類屬性與數(shù)據(jù)庫表字段一一對(duì)應(yīng);
11、使用beetl模板引擎,定義好的模板文件,并將變量在生成代碼時(shí)被具體替換;
12、使用jdbc連接數(shù)據(jù)庫,讀取數(shù)據(jù)庫的元數(shù)據(jù);
13、將讀取的元數(shù)據(jù)轉(zhuǎn)換成用于模板填充的模型;
14、使用元數(shù)據(jù)模型填充模板中的變量,生成具體的代碼;
15、生成entity、dao、dto、service、controller層代碼;
16、對(duì)生成的代碼進(jìn)行格式化,使其符合編碼規(guī)范。
17、作為本發(fā)明的進(jìn)一步方案,生成的所述對(duì)外開放的接口每次請(qǐng)求時(shí)進(jìn)行請(qǐng)求簽名驗(yàn)證,包括如下步驟:
18、構(gòu)造簽名參數(shù)集合,其中包括接口所需參數(shù)以及必傳的請(qǐng)求頭中的時(shí)間和秘鑰id;
19、去除參數(shù)值為null和空的數(shù)據(jù);
20、按ascii碼升序?qū)λ袇?shù)的key進(jìn)行排序;
21、拼接排序后的參數(shù),形成簽名字符串;
22、對(duì)簽名字符串進(jìn)行hmacsha1摘要并base64加密;
23、對(duì)簽名字符串進(jìn)行簽名驗(yàn)證。
24、作為本發(fā)明的進(jìn)一步方案,所述對(duì)簽名字符串進(jìn)行簽名驗(yàn)證包括:
25、使用秘鑰對(duì)、rsa2秘鑰或者免驗(yàn)簽三者任一種進(jìn)行簽名驗(yàn)證。
26、作為本發(fā)明的進(jìn)一步方案,所述生成的對(duì)外開放的接口每次協(xié)議的請(qǐng)求時(shí)進(jìn)行請(qǐng)求簽名驗(yàn)證,包括:
27、生成的對(duì)外開放的接口每次http或者h(yuǎn)ttps協(xié)議的請(qǐng)求時(shí)進(jìn)行請(qǐng)求簽名驗(yàn)證。
28、作為本發(fā)明的進(jìn)一步方案,請(qǐng)求簽名驗(yàn)證中使用的加密算法為hmacsha1摘要或base64加密。
29、第二方面,在本發(fā)明提供的又一個(gè)實(shí)施例中,提供了對(duì)外開放接口代碼生成系統(tǒng),該系統(tǒng)包括:代碼生成模塊、接口生成模塊和安全驗(yàn)證模塊。
30、所述代碼生成模塊,配置用于基于數(shù)據(jù)庫表及配置生成entity層、dao層、dto層、service層、controller層和ui層的業(yè)務(wù)代碼;
31、所述接口生成模塊,配置用于基于數(shù)據(jù)庫表及配置生成安全標(biāo)準(zhǔn)化的對(duì)外開放接口;
32、所述安全驗(yàn)證模塊,配置用于生成的對(duì)外開放接口被請(qǐng)求時(shí),進(jìn)行簽名驗(yàn)證和qps限制。
33、本發(fā)明提供的技術(shù)方案,具有如下有益效果:
34、本發(fā)明基于數(shù)據(jù)庫表及配置生成entity層、dao層、dto層、service層、controller層和ui層的業(yè)務(wù)代碼,基于數(shù)據(jù)庫表及配置生成安全標(biāo)準(zhǔn)化的對(duì)外開放接口;生成的對(duì)外開放接口被請(qǐng)求時(shí),進(jìn)行簽名驗(yàn)證和qps限制;本發(fā)明通過簽名驗(yàn)證確保了對(duì)外接口的安全性和身份合法性;自動(dòng)化生成代碼,減少了手動(dòng)編寫重復(fù)代碼的工作量;提高開發(fā)效率,節(jié)省了開發(fā)人員的時(shí)間。
35、本發(fā)明的這些方面或其他方面在以下實(shí)施例的描述中會(huì)更加簡(jiǎn)明易懂。應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
1.一種對(duì)外開放接口代碼生成方法,其特征在于,應(yīng)用于業(yè)務(wù)代碼生成及系統(tǒng)對(duì)外開放接口的安全驗(yàn)證,所述方法包括:
2.根據(jù)權(quán)利要求1所述的對(duì)外開放接口代碼生成方法,其特征在于,基于數(shù)據(jù)庫表及配置生成包含entity層、dao層、dto層、service層、controller層和ui層的業(yè)務(wù)代碼,包括:
3.如權(quán)利要求2所述的對(duì)外開放接口代碼生成方法,其特征在于,基于數(shù)據(jù)庫表及配置生成包含entity層、dao層、dto層、service層、controller層和ui層的業(yè)務(wù)代碼,還包括:
4.如權(quán)利要求1所述的對(duì)外開放接口代碼生成方法,其特征在于,所述基于數(shù)據(jù)庫表及配置生成安全標(biāo)準(zhǔn)化的對(duì)外開放接口,包括:
5.根據(jù)權(quán)利要求1所述的對(duì)外開放接口代碼生成方法,其特征在于,所述生成的對(duì)外開放接口被請(qǐng)求時(shí),進(jìn)行簽名驗(yàn)證和qps限制,包括:
6.一種對(duì)外開放接口代碼生成系統(tǒng),其特征在于,該系統(tǒng)包括:代碼生成模塊、接口生成模塊和安全驗(yàn)證模塊;