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