分页携带请求参数_一个值得深思的小问题 请求中的参数值为空要不要携带该参数?...
最近一個(gè)朋友瘋狂的和我吐槽公司的后端,說(shuō)很常規(guī)、很普通的一個(gè)事兒,也就是驗(yàn)證一下子的事兒,非要搞的那么復(fù)雜,治標(biāo)不治本,技術(shù)玩來(lái)玩去不但沒(méi)進(jìn)步還倒退了。
這是怎么回事呢?咱們就來(lái)聊聊這件"小事兒",大家可以看看自己內(nèi)部是怎么做的。
咱們都是搞前端的,所以和后端打交道最多的就是調(diào)用后端接口獲取數(shù)據(jù),每個(gè)公司應(yīng)該也都有自己的接口規(guī)范,傳參規(guī)范等。
我這朋友的問(wèn)題是這樣的,前端請(qǐng)求接口,帶過(guò)去了一些參數(shù),但是其中有個(gè)參數(shù)沒(méi)值,也就是空,但是呢后端在接收該值的時(shí)候沒(méi)有類型判斷(該字段是int類型),相當(dāng)于直接把一個(gè)空字符串直接轉(zhuǎn)為int類型。結(jié)果可想而知了,肯定是出異常了。導(dǎo)致業(yè)務(wù)上受到了影響。
比如,請(qǐng)求參數(shù)如下
name=bigerfe&age=&a=1
其中參數(shù)age是int類型,但是前端傳了空,后端取參數(shù)的時(shí)候報(bào)錯(cuò)了。
此時(shí),前端理解的是后端只需要后端做個(gè)容錯(cuò)處理就可以了,轉(zhuǎn)化失敗就給個(gè)默認(rèn)值唄。但是后端理解的不太一樣了,希望前端如果是沒(méi)值的這種字段,就直接不要拼接到參數(shù)里,這種空串對(duì)于我們來(lái)說(shuō)是沒(méi)意義的,沒(méi)意義的就不需要拼接了。然后要出一個(gè)傳參規(guī)范,聲明string類型的字段如果值為空串的,請(qǐng)求的時(shí)候就不要攜帶該參數(shù)。其他類型的會(huì)給一個(gè)默認(rèn)值。
比如這樣,age字段干掉了
name=bigerfe&a=1
我這朋友不樂(lè)意了,覺(jué)得這不合理,認(rèn)為本質(zhì)問(wèn)題就是兜底處理沒(méi)做好,怎么扯到規(guī)范上來(lái)了,覺(jué)得這個(gè)規(guī)范對(duì)他們的影響挺大,需要改代碼,不能接收這個(gè)提議,但當(dāng)時(shí)也不能說(shuō)出一個(gè)更合理的理由,只能忍著。
其實(shí)我們客觀來(lái)分析下,解決這個(gè)問(wèn)題的最簡(jiǎn)單的方法就是后端做好容錯(cuò)處理,轉(zhuǎn)換失敗給個(gè)默認(rèn)值,提到規(guī)范層面也不是不可以,但是要先明確問(wèn)題產(chǎn)生的原因。
既然要做規(guī)范,這也是好事,這樣各端就都統(tǒng)一了,也能讓其他端避免再出現(xiàn)該問(wèn)題,若遇到什么問(wèn)題,不清楚的直接去查規(guī)范就好了。
如果后端初定了上面這樣的規(guī)范,然后和大家一起討論,看是否可行,如果你覺(jué)得不合理,你該如何反駁呢?
既然你覺(jué)得不合理,你覺(jué)得怎樣合理?
有時(shí)候你覺(jué)得不合理,可能是你不想做,你沒(méi)有這樣的習(xí)慣而已。
你可能會(huì)說(shuō),不攜帶這個(gè)參數(shù)和傳空串完全是兩個(gè)意義。
如果是你遇到了這個(gè)問(wèn)題,你該怎樣處理?接受還是反駁?能不能找到一個(gè)走不通的場(chǎng)景?
。。。。。。。
畢竟該規(guī)范是不合理的,人多了總有人能想到不同的場(chǎng)景,在團(tuán)隊(duì)的討論下,結(jié)果該方案沒(méi)有通過(guò),還是保持原來(lái)的方式,不會(huì)干掉這個(gè)字段。
那是被什么樣的問(wèn)題給拍回去了呢?
好了,別的不多說(shuō)了,可能還有其他的場(chǎng)景,大家可以留言來(lái)討論。
最后,有時(shí)候我們可能覺(jué)得某些方案不合理,但是一時(shí)也想不出去為什么不合理?其實(shí)也能做,但就是不想做,可能成本高,影響范圍大。但如果真的不合理,那一定要拿出不合理的理由,或者在某些場(chǎng)景下走不通,而不是通過(guò)經(jīng)驗(yàn)來(lái)說(shuō)這樣不合理。另外,有時(shí)候一個(gè)人想不出理由也很正常,所以這個(gè)時(shí)候就需要團(tuán)隊(duì)一起來(lái)討論,把方案拿出來(lái),合理不合理很快就見(jiàn)分曉,畢竟一個(gè)人的力量是有限的,人多了想法多,思考的角度也不同。通過(guò)討論才能有更好的結(jié)論,這可能也就是團(tuán)隊(duì)存在的一個(gè)重要意義吧。
另外我們自己也不能處處依賴團(tuán)隊(duì),時(shí)刻應(yīng)該調(diào)整自己思考問(wèn)題的方向和思路,當(dāng)遇到不合理的方案的時(shí)候,不要陷入代碼層面去,也不要只考慮自身的工作量,更不要被以往的經(jīng)驗(yàn)和習(xí)慣給束縛了,應(yīng)該跳出代碼,多考慮業(yè)務(wù)中的實(shí)際場(chǎng)景,看是否都能滿足。
點(diǎn)贊是最大的支持?
總結(jié)
以上是生活随笔為你收集整理的分页携带请求参数_一个值得深思的小问题 请求中的参数值为空要不要携带该参数?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 架空输电线路运行规程_架空输电线路通道与
- 下一篇: python cms tornado_都