本發(fā)明屬于物聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種參數(shù)的校驗(yàn)方法及校驗(yàn)系統(tǒng)。
背景技術(shù):
通用網(wǎng)關(guān)接口(Common Gateway Interface,CGI)是一種重要的互聯(lián)網(wǎng)技術(shù),用于支持客戶端通過網(wǎng)頁瀏覽器向執(zhí)行在網(wǎng)絡(luò)服務(wù)器上的程序請(qǐng)求數(shù)據(jù)。CGI的本質(zhì)是通過CGI參數(shù)描述了客戶端和服務(wù)器程序之間的一種傳輸數(shù)據(jù)的標(biāo)準(zhǔn)。
目前的CGI參數(shù)檢驗(yàn)都是手動(dòng)添加各種參數(shù)的校驗(yàn)邏輯,開發(fā)成本相當(dāng)高。而且CGI的參數(shù)說明文檔也必須手工編寫,每當(dāng)參數(shù)有所變動(dòng)時(shí),都得手工修改說明文檔,維護(hù)的處理耗時(shí)久,不僅處理效率低下,而是也容易出現(xiàn)誤操作。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種參數(shù)校驗(yàn)方法和校驗(yàn)系統(tǒng),可以解決現(xiàn)有技術(shù)中開發(fā)成本高、維護(hù)耗時(shí)久的技術(shù)問題。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種參數(shù)校驗(yàn)方法,包括:
創(chuàng)建參數(shù)配置文件,并定義三類不同校驗(yàn)優(yōu)先級(jí)的參數(shù),包括:第一類參數(shù)、第二類參數(shù)、以及第三類參數(shù);
根據(jù)所述校驗(yàn)優(yōu)先級(jí),將所述參數(shù)配置文件進(jìn)行語法轉(zhuǎn)換以生成參數(shù)校驗(yàn)代碼;以及
記錄參數(shù)校驗(yàn)代碼的生成過程,以生成對(duì)應(yīng)的說明文檔。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種參數(shù)校驗(yàn)系統(tǒng),包括:
配置文件創(chuàng)建模塊,用于創(chuàng)建參數(shù)配置文件,并定義三類不同校驗(yàn)優(yōu)先級(jí)的參數(shù),包括:第一類參數(shù)、第二類參數(shù)、以及第三類參數(shù);
代碼生成模塊,用于根據(jù)所述校驗(yàn)優(yōu)先級(jí),將所述參數(shù)配置文件進(jìn)行語法轉(zhuǎn)換以生成參數(shù)校驗(yàn)代碼;以及
文檔生成模塊,用于記錄參數(shù)校驗(yàn)代碼的生成過程,以生成對(duì)應(yīng)的說明文檔。
相對(duì)于現(xiàn)有技術(shù),本發(fā)明的參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng),通過在參數(shù)配置文件中定義不同校驗(yàn)優(yōu)先級(jí),以自動(dòng)生成對(duì)應(yīng)的參數(shù)代碼和說明文檔,開發(fā)成本低、無需額外的維護(hù)時(shí)間。
附圖說明
圖1是本發(fā)明實(shí)施例提供的參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng)的應(yīng)用環(huán)境示意圖;
圖2是本發(fā)明實(shí)施例一提供的參數(shù)校驗(yàn)方法的工作流程示意圖;
圖3是本發(fā)明實(shí)施例二提供的參數(shù)校驗(yàn)方法的工作流程示意圖;
圖4是本發(fā)明實(shí)施例三提供的參數(shù)校驗(yàn)系統(tǒng)的模塊示意圖;
圖5是本發(fā)明實(shí)施例四提供的參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng)的時(shí)序示意圖。
具體實(shí)施方式
請(qǐng)參照附圖中的圖式,其中相同的組件符號(hào)代表相同的組件,本發(fā)明的原理是以實(shí)施在一適當(dāng)?shù)倪\(yùn)算環(huán)境中來舉例說明。以下的說明是基于所示例的本發(fā)明的具體實(shí)施例,其不應(yīng)被視為限制本發(fā)明未在此詳述的其它具體實(shí)施例。
本發(fā)明原理以上述文字來說明,其并不代表為一種限制,本領(lǐng)域測試人員將可了解到以下所述的多種步驟及操作亦可實(shí)施在硬件當(dāng)中。本發(fā)明的原理使用許多其它泛用性或特定目的運(yùn)算、通信環(huán)境或組態(tài)來進(jìn)行操作。
請(qǐng)參閱圖1,為本發(fā)明中提供的參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng)的應(yīng)用環(huán)境示意圖。所述應(yīng)用環(huán)境,包括網(wǎng)頁服務(wù)器10、用戶終端設(shè)備20、數(shù)據(jù)庫服務(wù)器30、以及通信網(wǎng)絡(luò)30。
可以理解的是,用戶終端設(shè)備20中設(shè)置有瀏覽器,通過瀏覽器的網(wǎng)頁獲取參數(shù),并通過超文本傳輸協(xié)議(HTTP,HyperText Transfer Protocol)或傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(TCP/IP,Transmission Control Protocol/Internet Protocol)協(xié)議將所述參數(shù)傳遞給所述網(wǎng)頁服務(wù)器10。
其中,所述用戶終端設(shè)備20,包括各種類型的移動(dòng)終端,比如,筆記本、臺(tái)式電腦、或智能手機(jī)等。
網(wǎng)頁服務(wù)器10,設(shè)置有參數(shù)校驗(yàn)系統(tǒng)以執(zhí)行參數(shù)校驗(yàn)方法。具體而言,用于接收所述參數(shù),并進(jìn)行參數(shù)的驗(yàn)證和分析。其中,如果通過驗(yàn)證,則將所述參數(shù)經(jīng)過分析后轉(zhuǎn)換成結(jié)構(gòu)化查詢語言(SQL,Structured Query Language)命令,并發(fā)送給數(shù)據(jù)庫服務(wù)器30;如果沒有通過驗(yàn)證,則將所述驗(yàn)證結(jié)果返回給所述用戶終端設(shè)備20中進(jìn)行提示或修改。
數(shù)據(jù)庫服務(wù)器30,用于接收來自于所述網(wǎng)頁服務(wù)器10的SQL命令,并向所述網(wǎng)頁服務(wù)器20返回查詢結(jié)果。
可以理解的是,所述網(wǎng)頁服務(wù)器10,接收到所述查詢結(jié)果后,會(huì)將所述查詢結(jié)果轉(zhuǎn)發(fā)給所述用戶終端設(shè)備20,并顯示于其瀏覽器的網(wǎng)頁中。
通信網(wǎng)絡(luò)40,包括無線網(wǎng)絡(luò)及有線網(wǎng)絡(luò)。其中無線網(wǎng)絡(luò)包括無線廣域網(wǎng)、無線局域網(wǎng)、無線城域網(wǎng)、以及無線個(gè)人網(wǎng)中的一種或多種的組合。
本案以CGI的參數(shù)校驗(yàn)為例進(jìn)行說明,可以理解的是,亦可用于其他設(shè)備或應(yīng)用環(huán)境中的參數(shù)校驗(yàn)。請(qǐng)參照以下實(shí)施例,實(shí)施例一側(cè)重于參數(shù)校驗(yàn)方法的基礎(chǔ)步驟,實(shí)施例二側(cè)重于參數(shù)校驗(yàn)方法的優(yōu)化步驟,實(shí)施例三側(cè)重于參數(shù) 校驗(yàn)系統(tǒng),而實(shí)施例四側(cè)重于參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng)執(zhí)行時(shí)工作時(shí)序??梢岳斫獾氖牵弘m然各實(shí)施例的側(cè)重不同,但其設(shè)計(jì)思想是一致的。且,在某個(gè)實(shí)施例中沒有詳述的部分,可以參見說明書全文的詳細(xì)描述,不再贅述。
實(shí)施例一
請(qǐng)參閱圖2,所示為本發(fā)明實(shí)施例提供的參數(shù)校驗(yàn)方法的工作流程示意圖。所述參數(shù)校驗(yàn)方法可以執(zhí)行于瀏覽器中,也可以執(zhí)行于網(wǎng)頁服務(wù)器中。在本實(shí)施例中,以執(zhí)行于網(wǎng)頁服務(wù)器中為例進(jìn)行闡述。
在步驟S201中,創(chuàng)建參數(shù)配置文件,并定義三類不同校驗(yàn)優(yōu)先級(jí)的參數(shù),包括:第一類參數(shù)、第二類參數(shù)、以及第三類參數(shù)。
可以理解的是,定義第一類參數(shù)的校驗(yàn)優(yōu)先級(jí)高于第二類參數(shù),第二類參數(shù)的優(yōu)先級(jí)高于第三類參數(shù),其中,第一類參數(shù)是必需校驗(yàn)的,第二類參數(shù)是可選擇是否校驗(yàn)的,第三類參數(shù)是無需校驗(yàn)的。例如:
(1)定義第一類參數(shù)為CGI_DEF_REQUIRED_INPUT_PARAM(name,desc,type,attr_id,err_code),表示此定義的參數(shù)為必填且會(huì)強(qiáng)校驗(yàn)此參數(shù)的類型;
(2)定義第二類參數(shù)為CGI_DEF_OPTIONAL_INPUT_PARAM(name,desc,type,attr_id,err_code)表示此定義的參數(shù)可填可不填,但填寫時(shí)會(huì)檢驗(yàn)此參數(shù)的類型;以及
(3)定義第三類參數(shù)為CGI_DEF_INPUT_PARAM(name,desc)表示此定義的參數(shù)可填可不填,且不會(huì)檢驗(yàn)此參數(shù)類型。
其中,name為參數(shù)的英文名稱,desc為參數(shù)的中文說明,type為參數(shù)的類型,attr_id為monitor告警id,err_code為校驗(yàn)出錯(cuò)時(shí)返回給前端的錯(cuò)誤碼。
在步驟S202中,根據(jù)所述校驗(yàn)優(yōu)先級(jí),將所述參數(shù)配置文件進(jìn)行語法轉(zhuǎn)換以生成參數(shù)校驗(yàn)代碼。
可以理解的是,所述語法轉(zhuǎn)換,是將配置文件中的參數(shù)通過預(yù)定的規(guī)則或模式,將某一特定的輸入(通常是字符串)轉(zhuǎn)換成另一種預(yù)設(shè)的輸出(通常也是字符串)。例如,利用C++中的宏定義進(jìn)行語法轉(zhuǎn)換。
其中,將所述參數(shù)配置文件中所述第一類參數(shù)和第二類參數(shù)進(jìn)行語法轉(zhuǎn)換,以生成參數(shù)校驗(yàn)代碼。
在步驟S203中,記錄參數(shù)校驗(yàn)代碼的生成過程,以生成對(duì)應(yīng)的說明文檔。
所述說明文檔,用于記錄各類參數(shù)的名稱、所述校驗(yàn)優(yōu)先級(jí)、代碼生成時(shí)間、代碼修改時(shí)間、代碼路徑、以及編譯時(shí)間。
本發(fā)明的參數(shù)校驗(yàn)方法,通過在參數(shù)配置文件中定義不同校驗(yàn)優(yōu)先級(jí),以自動(dòng)生成對(duì)應(yīng)的參數(shù)代碼和說明文檔,開發(fā)成本低、無需額外的維護(hù)時(shí)間。
實(shí)施例二
請(qǐng)參閱圖3,所示為本發(fā)明實(shí)施例提供的參數(shù)校驗(yàn)方法的工作流程示意圖。
在步驟S201中,創(chuàng)建參數(shù)配置文件,并定義三類不同校驗(yàn)優(yōu)先級(jí)的參數(shù),包括:第一類參數(shù)、第二類參數(shù)、以及第三類參數(shù)。
可以理解的是,其中,第一類參數(shù)是必需校驗(yàn)的,第二類參數(shù)是可選擇是否校驗(yàn)的,第三類參數(shù)是無需校驗(yàn)的。
在步驟S202中,根據(jù)所述校驗(yàn)優(yōu)先級(jí),將所述參數(shù)配置文件進(jìn)行語法轉(zhuǎn)換以生成參數(shù)校驗(yàn)代碼。
例如,利用C++中的宏定義進(jìn)行語法轉(zhuǎn)換。其中,將所述參數(shù)配置文件中所述第一類參數(shù)和第二類參數(shù)進(jìn)行語法轉(zhuǎn)換,以生成參數(shù)校驗(yàn)代碼。
在步驟S203中,記錄參數(shù)校驗(yàn)代碼的生成過程,以生成對(duì)應(yīng)的說明文檔。
可以理解的是,所述說明文檔,用于記錄各類參數(shù)的名稱、所述校驗(yàn)優(yōu)先級(jí)、代碼生成時(shí)間、代碼修改時(shí)間、代碼路徑、以及編譯時(shí)間。
在步驟S204中,接收所述參數(shù)配置文件的修改參數(shù),并記錄修改位置。
比如,用于將參數(shù)的英文名稱從原始的ID修改為Name,或?qū)?shù)002從第一類參數(shù)修改為第二類參數(shù)。
在步驟S205中,將所述修改參數(shù)按照所述校驗(yàn)優(yōu)先級(jí)生成新的參數(shù)代碼,并替換所述修改位置所對(duì)應(yīng)的原參數(shù)校驗(yàn)代碼。
可以理解的是,如果修改參數(shù)屬于第一類參數(shù)或第二類參數(shù),則生成對(duì)應(yīng)的代碼,如果屬于第三類參數(shù),則忽略所述修改,無需修改代碼。
在步驟S206中,記錄替換過程以生成新的說明文檔。
可以理解的是,在本步驟中,既可以根據(jù)修改位置插入、替換或刪除原說明文檔的一部分,以生成新的說明文檔,也可以在原說明文檔的開頭或末尾生成一段日志,作為原說明文檔的補(bǔ)丁,并記錄本次代碼修改時(shí)間。
在步驟S207中,將所述校驗(yàn)代碼進(jìn)行編譯和執(zhí)行。
可以理解的是,所述編譯,是指將所述代碼的源程序生成可執(zhí)行的目標(biāo)程序的過程。
在步驟S208中,獲取參數(shù)校驗(yàn)的執(zhí)行結(jié)果。
具體而言,接收來自用戶終端的瀏覽器頁面的參數(shù),并將所述參數(shù)代入所述目標(biāo)程序中進(jìn)行執(zhí)行,以獲所述參數(shù)校驗(yàn)的取執(zhí)行結(jié)果
在步驟S209中,判斷所述執(zhí)行結(jié)果是否通過校驗(yàn)。其中,如果未通過校驗(yàn),則執(zhí)行步驟S210,若通過校驗(yàn),則執(zhí)行步驟S211。
在步驟S210中,將未通過校驗(yàn)的參數(shù)進(jìn)行異常處理。
可以理解的是,所述異常處理,是將所述未通過校驗(yàn)的參數(shù)返回給參數(shù)的輸入端,即用戶終端設(shè)備的瀏覽器頁面。
在步驟S211中,將通過校驗(yàn)的參數(shù)進(jìn)行分析,并產(chǎn)生SQL命令進(jìn)行執(zhí)行。
可以理解的是,所述執(zhí)行,是指將所述SQL命令發(fā)送至數(shù)據(jù)服務(wù)器進(jìn)行查詢,并將查詢結(jié)果轉(zhuǎn)發(fā)至所述用戶終端設(shè)備的瀏覽器頁面。
本發(fā)明的參數(shù)校驗(yàn)方法,通過在參數(shù)配置文件中定義不同校驗(yàn)優(yōu)先級(jí),以自動(dòng)生成對(duì)應(yīng)的參數(shù)代碼和說明文檔,開發(fā)成本低、無需額外的維護(hù)時(shí)間。
實(shí)施例三
請(qǐng)參閱圖4,所示為本發(fā)明實(shí)施例提供的參數(shù)校驗(yàn)系統(tǒng)的模塊示意圖。
所述參數(shù)校驗(yàn)系統(tǒng)100,可以應(yīng)用于瀏覽器中,也可以應(yīng)用于網(wǎng)頁服務(wù)器中。在本實(shí)施例中,以應(yīng)用于網(wǎng)頁服務(wù)器中為例進(jìn)行闡述。
所述參數(shù)校驗(yàn)系統(tǒng)100,包括:配置文件創(chuàng)建模塊11、代碼生成模塊12、文檔生成模塊13、配置文件修改模塊14、代碼修改模塊15、文檔修改模塊16、代碼執(zhí)行模塊17、結(jié)果獲取模塊18、以及處理模塊19。
配置文件創(chuàng)建模塊11,用于創(chuàng)建參數(shù)配置文件,并定義三類不同校驗(yàn)優(yōu)先級(jí)的參數(shù),包括:第一類參數(shù)、第二類參數(shù)、以及第三類參數(shù)。
具體而言,所述配置文件創(chuàng)建模塊11,定義第一類參數(shù)的校驗(yàn)優(yōu)先級(jí)高于第二類參數(shù),第二類參數(shù)的優(yōu)先級(jí)高于第三類參數(shù),即,第一類參數(shù)是必需校驗(yàn)的,第二類參數(shù)是可選擇是否校驗(yàn)的,第三類參數(shù)是無需校驗(yàn)的。
代碼生成模塊12,用于根據(jù)配置文件創(chuàng)建模塊11中所述校驗(yàn)優(yōu)先級(jí),將所述參數(shù)配置文件進(jìn)行語法轉(zhuǎn)換以生成參數(shù)校驗(yàn)代碼。
具體而言,所述代碼生成模塊12利用C++中的宏定義,將所述參數(shù)配置文件中所述第一類參數(shù)和第二類參數(shù)進(jìn)行語法轉(zhuǎn)換,以生成參數(shù)校驗(yàn)代碼。
文檔生成模塊13,用于記錄參數(shù)校驗(yàn)代碼的生成過程,以生成對(duì)應(yīng)的說明文檔。
可以理解的是,所述文檔生成模塊13中的所述說明文檔,用于記錄各類參 數(shù)的名稱、所述校驗(yàn)優(yōu)先級(jí)、代碼生成時(shí)間、代碼修改時(shí)間、代碼路徑、以及編譯時(shí)間。
配置文件修改模塊14,用于接收所述參數(shù)配置文件的修改參數(shù),并記錄修改位置。
代碼修改模塊15,用于將所述修改參數(shù)按照所述校驗(yàn)優(yōu)先級(jí)生成新的參數(shù)代碼,并替換所述修改位置所對(duì)應(yīng)的原參數(shù)校驗(yàn)代碼。
可以理解的是,如果修改參數(shù)屬于第一類參數(shù)或第二類參數(shù),則生成對(duì)應(yīng)的代碼,如果屬于第三類參數(shù),則忽略所述修改,無需修改代碼。
文檔修改模塊16,用于記錄替換過程以生成新的說明文檔。
可以理解的是,所述文檔修改模塊16既可以根據(jù)修改位置插入、替換或刪除原說明文檔的一部分,以生成新的說明文檔,也可以在文檔的開后或末尾生成一端日志,作為說明文檔的補(bǔ)丁,并記錄代碼修改時(shí)間。
代碼執(zhí)行模塊17,用于將所述校驗(yàn)代碼進(jìn)行編譯和執(zhí)行。
可以理解的是,所述編譯,是指將所述代碼的源程序生成可執(zhí)行的目標(biāo)程序的過程。
結(jié)果獲取模塊18,用于獲取參數(shù)校驗(yàn)的執(zhí)行結(jié)果。
具體而言,所述結(jié)果獲取模塊用于接收來自用戶終端的瀏覽器頁面的參數(shù),并將所述參數(shù)代入所述目標(biāo)程序中進(jìn)行執(zhí)行,以獲所述參數(shù)校驗(yàn)的取執(zhí)行結(jié)果。
處理模塊19,用于判斷所述執(zhí)行結(jié)果是否通過校驗(yàn),并將未通過校驗(yàn)的參數(shù)進(jìn)行異常處理。
具體而言,所述處理模塊19,用于將所述未通過校驗(yàn)的參數(shù)返回給參數(shù)的輸入端,即用戶終端設(shè)備的瀏覽器頁面。所述處理模塊19還用于將通過校驗(yàn)的參數(shù)進(jìn)行分析,并產(chǎn)生SQL命令,以及將SQL命令發(fā)送至數(shù)據(jù)服務(wù)器進(jìn)行查 詢,并將查詢結(jié)果轉(zhuǎn)發(fā)至所述用戶終端設(shè)備的瀏覽器頁面。
本發(fā)明的參數(shù)校驗(yàn)系統(tǒng),通過在參數(shù)配置文件中定義不同校驗(yàn)優(yōu)先級(jí),以自動(dòng)生成對(duì)應(yīng)的參數(shù)代碼和說明文檔,開發(fā)成本低、無需額外的維護(hù)時(shí)間。
實(shí)施例四
請(qǐng)參閱圖5,所示為本發(fā)明實(shí)施例提供的的參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng)的運(yùn)行時(shí)序示意圖。
在步驟A中,用戶終端設(shè)備通過瀏覽器的頁面獲取參數(shù)。
在步驟B中,用戶終端設(shè)備通過傳輸協(xié)議(Http或TCP/IP)將所述參數(shù)傳輸至網(wǎng)頁服務(wù)器。
在步驟C中,網(wǎng)頁服務(wù)器根據(jù)內(nèi)置的參數(shù)驗(yàn)證方法或參數(shù)驗(yàn)證系統(tǒng)生成參數(shù)驗(yàn)證的代碼,并通過編譯及執(zhí)行所述代碼對(duì)所述參數(shù)進(jìn)行驗(yàn)證。其中,如果未通過驗(yàn)證則執(zhí)行步驟D,若通過驗(yàn)證在執(zhí)行步驟F。
在步驟D中,當(dāng)未通過驗(yàn)證時(shí),網(wǎng)頁服務(wù)器進(jìn)行異常處理,即發(fā)送異常信息至用戶終端設(shè)備。
在步驟E中,用戶終端接收到異常信息后,對(duì)所述參數(shù)進(jìn)一步進(jìn)行異常處理,包括修正或放棄執(zhí)行等。
在步驟F中,當(dāng)通過驗(yàn)證后,網(wǎng)頁服務(wù)器對(duì)所述參數(shù)進(jìn)行分析,并產(chǎn)生SQL命令。
在步驟G中,網(wǎng)頁服務(wù)器發(fā)送所述SQL命令至數(shù)據(jù)庫服務(wù)器。
在步驟H中,數(shù)據(jù)庫服務(wù)接收所述SQL命令,進(jìn)行查詢后,發(fā)送查詢結(jié)果至所述網(wǎng)頁服務(wù)器。
在步驟I中,網(wǎng)頁服務(wù)器將所述查詢結(jié)果轉(zhuǎn)發(fā)至所述用戶終端設(shè)備。
本發(fā)明的參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng),通過在參數(shù)配置文件中定義不同校驗(yàn) 優(yōu)先級(jí),以自動(dòng)生成對(duì)應(yīng)的參數(shù)代碼和說明文檔,開發(fā)成本低、無需額外的維護(hù)時(shí)間。
本發(fā)明實(shí)施例提供的參數(shù)校驗(yàn)方法及校驗(yàn)系統(tǒng)屬于同一構(gòu)思,其具體實(shí)現(xiàn)過程詳見說明書全文,此處不再贅述。
綜上所述,雖然本發(fā)明已以優(yōu)選實(shí)施例揭露如上,但上述優(yōu)選實(shí)施例并非用以限制本發(fā)明,本領(lǐng)域的普通測試人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與潤飾,因此本發(fā)明的保護(hù)范圍以權(quán)利要求界定的范圍為準(zhǔn)。