這篇文章主要講解了“怎么規(guī)范web前后臺(tái)請(qǐng)求參數(shù)校驗(yàn)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么規(guī)范web前后臺(tái)請(qǐng)求參數(shù)校驗(yàn)”吧!
在福貢等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站,外貿(mào)網(wǎng)站建設(shè),福貢網(wǎng)站建設(shè)費(fèi)用合理。
1. 什么時(shí)候我們會(huì)前、后端校驗(yàn)?
正常情況下,前后端對(duì)于請(qǐng)求的參數(shù)都需要校驗(yàn)的,這能提高應(yīng)用程序的穩(wěn)定性、可維護(hù)性,而對(duì)于前后臺(tái)如果能將這種不可缺少校驗(yàn)規(guī)則匯總并制定一套規(guī)范,在每一個(gè)應(yīng)用程序中都使用這種規(guī)范,能給帶來(lái)不少好處。那在哪些情況下適合使用前、后端校驗(yàn)了:
應(yīng)用程序業(yè)務(wù)單一、后期維護(hù)少、不涉及敏感信息,如:公司內(nèi)部OA系統(tǒng),這種系統(tǒng)可以直接使用前端校驗(yàn),而這里的前端參數(shù)校驗(yàn)可以使用:H5表單校驗(yàn)或者封裝常用校驗(yàn)JS文件。
應(yīng)用程序業(yè)務(wù)單一、后期維護(hù)少;如:支付系統(tǒng),由于支付系統(tǒng)可能會(huì)有其他公司對(duì)接平臺(tái)的接口,所有這種前端校驗(yàn)就交給其他公司了,我們只需要做好后端校驗(yàn)就行。
業(yè)務(wù)復(fù)雜、后期維護(hù)多、安全可用性要求高,如:電商項(xiàng)目的維護(hù),這種方式要同時(shí)使用前后端校驗(yàn),前端校驗(yàn)的目的是為了把更多的錯(cuò)誤請(qǐng)求都在瀏覽器層面就已經(jīng)攔截處理,不會(huì)消耗服務(wù)端的內(nèi)存和線程數(shù),可以提供性能;對(duì)于還要進(jìn)行后端校驗(yàn)是為了提高系統(tǒng)的穩(wěn)定性,不要?jiǎng)硬粍?dòng)就500,還能防止一些人惡意攻擊網(wǎng)站等等。
2. 前端請(qǐng)求參數(shù)校驗(yàn)
常用的方式有這些:
自己封裝一個(gè)通用校驗(yàn)JS文件,統(tǒng)一校驗(yàn)方式(使用與JS發(fā)送請(qǐng)求)
H5標(biāo)簽屬性檢驗(yàn)方式(適用于web form表單提交)
第三方JS自己封裝的校驗(yàn)方法,這里對(duì)前端的建議盡量統(tǒng)一起來(lái)、規(guī)范起來(lái)。
3. 后端請(qǐng)求參數(shù)校驗(yàn)
常用的方式有這些:
不校驗(yàn),我對(duì)比了之前開(kāi)發(fā)的一些小系統(tǒng)(外包)對(duì)于后端參數(shù)基本沒(méi)有,這種方式的確可以做到后端開(kāi)發(fā)快,所有的校驗(yàn)都交給前端做,但對(duì)于前端不友好,如:由于前端少傳遞一個(gè)參數(shù),導(dǎo)致后端程序報(bào)錯(cuò),而后端又沒(méi)有提供詳細(xì)的報(bào)錯(cuò)信息,這給前端對(duì)接帶來(lái)了問(wèn)題,前端不知道自己錯(cuò)在哪里,這個(gè)時(shí)候可能還的和后端人員進(jìn)行溝通,后端看看Log再告訴前端,這種方式對(duì)于前端對(duì)接不友好并且效率低。
封裝自己的校驗(yàn)工具類進(jìn)行檢驗(yàn),這種方式的確能做到后端交易,但如果需要校驗(yàn)的參數(shù)比較多對(duì)程序是不友好的,如:

使用@RequestParam注解完成簡(jiǎn)單非空校驗(yàn),這種雖然可以檢驗(yàn),但如果沒(méi)有傳此字段會(huì)拋出異常,這里需要通過(guò)全局異常捕獲統(tǒng)一處理。
@RequestParam(value = "mobile", required = true) String mobile
使用Interceptor、Filter、Aop.. 做公共部分的業(yè)務(wù)做統(tǒng)一的校驗(yàn)處理,如:Token檢驗(yàn),權(quán)限校驗(yàn)..
如果需要校驗(yàn)的參數(shù)比較多,校驗(yàn)方式和業(yè)務(wù)代碼混合在一塊不方便于代碼的維護(hù),可以使用hibernate-validator來(lái)做分組校驗(yàn)。


雖然到這里通過(guò)hibernate-validator來(lái)做分組校驗(yàn)就可以解決所有方式的參數(shù)校驗(yàn):
分組管理不同接口參數(shù)校驗(yàn)差異
可自定義注解校驗(yàn)復(fù)雜情況
但也存在問(wèn)題,后端校驗(yàn)的確做到了,但如果要將這些參數(shù)校驗(yàn)都編寫到接口文檔中,這個(gè)時(shí)候我們還需要先找接口、找到分組、找到dto下分組對(duì)應(yīng)的所有參數(shù)校驗(yàn),增加參數(shù)校驗(yàn)規(guī)則還得重新修改接口文檔等等。
感謝各位的閱讀,以上就是“怎么規(guī)范web前后臺(tái)請(qǐng)求參數(shù)校驗(yàn)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么規(guī)范web前后臺(tái)請(qǐng)求參數(shù)校驗(yàn)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
                網(wǎng)頁(yè)標(biāo)題:怎么規(guī)范web前后臺(tái)請(qǐng)求參數(shù)校驗(yàn)
                
                網(wǎng)頁(yè)地址:http://chinadenli.net/article26/ihhsjg.html
            
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站策劃、ChatGPT、面包屑導(dǎo)航、網(wǎng)站導(dǎo)航、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)