接口 500_python接口的自我修炼之路
hello,大家好,今天分享一篇python開發(fā)中的一個很重要的case,那就是寫接口。之前見到過一位應(yīng)聘者的簡歷,寫著接口開發(fā)3年,然后期望薪資20~25k。當時想著喔,好膩害呀,寫了三年的接口就可以要20多k啦,之后才了解到,接口寫了三年了,但是問題依然很多,寫的不全面,也就是不規(guī)范,估計是高中數(shù)學(xué)中的集合的分類沒有學(xué)好,現(xiàn)在烙下病根啦(嘿嘿)。再怎么說我們也是專業(yè)的好嗎,你的不專業(yè)可能讓你的表現(xiàn)大打折扣。
根據(jù)自己的實際開發(fā)來看,要寫出靠譜的接口要遵循一下幾個原則:
第一、看著要舒服
顏值總是放在第一位的,現(xiàn)在社會的確如此(雖自己不想承認)。接口代碼也是如此,我們做不到,更別說維護和修改了。如果你不知道什么是好的標準,那么遵循PEP8。如果自己懶的去扣其中的細節(jié),本人在博客園上寫過一篇相關(guān)的可以參考:
python 編碼規(guī)范整理 - 還是牛 - 博客園
我們看一下寫的不太好的代碼是長的什么樣子的(我這里只是簡單的寫了幾句),是不是看起來很low:
# -*- coding: utf-8 -*- # !/usr/bin/python a={"ret":'1000',"data":[1,2,3]} def function_interrupt(data):b=data['ret']if b=='1000':print 'query success'else:print 'query error'我們同樣的按照pep8的規(guī)則來簡單的修改一下以上的代碼(可以使用快捷鍵:Ctrl + Alt + L)快速的整理一下代碼,效果是如下:
# -*- coding: utf-8 -*- # !/usr/bin/python a = {"ret": '1000', "data": [1, 2, 3]}def function_interrupt(data):b = data['ret']if b == '1000':print 'query success'else:print 'query error'我不知道你的感受如何,你的專業(yè)程度也就決定你能走多遠,so,先讓自己專業(yè)起來。
第二、功能完整且正確
接口功能完整,意味著這個接口內(nèi)部至少要包含四個部分:參數(shù)驗證、權(quán)限驗證、數(shù)據(jù)操作和返回結(jié)果。其中每個部分可以少至只有一兩行代碼,在一些特殊情況下還可能沒有代碼,但是編寫者需要在心里清晰地知道這個接口中的四個部分分別是哪幾行。
由于不能提供真實開發(fā)中項目的case,從網(wǎng)上找的一個圖片僅供參考不可作為他用哈,我們來看一下:
從以上的內(nèi)容中我們是可以看到:
2.1.參數(shù)驗證是驗證傳入的參數(shù)是否有效,如果不寫,往往會在參數(shù)錯誤時導(dǎo)致代碼某處報錯,服務(wù)器返回500。一個好接口是不允許返回500的。
2.2.權(quán)限驗證是保證接口的調(diào)用時機和調(diào)用者與設(shè)計意圖相同。調(diào)用時機不對,會導(dǎo)致臟數(shù)據(jù)的產(chǎn)生。調(diào)用者不對,會帶來數(shù)據(jù)泄露的問題。無論哪一種,都可能最終導(dǎo)致業(yè)務(wù)的失敗,造成不可挽回的損失。不知道大家有沒聽說過黑白名單之說呢,不太了解的小伙伴請自行百度了解,這個在正常的開發(fā)中都會涉及到。
2.3.數(shù)據(jù)操作是實際的數(shù)據(jù)更改,這部分是功能實現(xiàn)的部分。
2.4.返回結(jié)果部分,關(guān)鍵在于返回的數(shù)據(jù)結(jié)構(gòu)的合理性。有關(guān)數(shù)據(jù)結(jié)構(gòu)的合理及可用。做的好的接口這里是有很多文章可以做的,不知道有沒有聽說過服務(wù)降級類似的東西,就是當我服務(wù)器出現(xiàn)問題,我任然有東西返回給用戶,所以這塊做的好的媽媽再也不用擔心我半夜三點爬起來修復(fù)線上問題啦,我完全可以第二天上班再淡定的處理。
第三、接口要讓使用者愿意用
大家的眼睛都是雪亮的,不要自己說自己的接口如何又如之何。傳入的參數(shù)要見名知意,能簡單就不要復(fù)雜,大道至簡哦。
第四、接口要基本安全
有一半的人用了eval解析接口參數(shù)。想想這個比例也是蠻嚇人的。有多少公司的后臺開發(fā)會不自覺地留下eval這個黑客大門。(留過這個后門的請自覺留言承認錯誤)當然還有很多很多安全方面的基本操作要注意我就不一一列舉了。
個人認為能夠做到以上幾點的接口,就是一個不錯的接口啦。好了你可以出去裝大佬咯,哈哈!
當你發(fā)現(xiàn)自己的才華撐不起野心時,請安靜的坐下來學(xué)習(xí)吧。
------還是牛
公眾號ID:pythonCoder1024 掃碼關(guān)注最新動態(tài)
如果你覺得公眾號的內(nèi)容不錯,可以推薦于身邊的朋友,你的每次肯定和受益都會成為我前進的動力,一起加油!
總結(jié)
以上是生活随笔為你收集整理的接口 500_python接口的自我修炼之路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python作品_学习 Python 有
- 下一篇: python控制鼠标点击标准模块_Pyt