API接口設(shè)計需要注意的那些事兒
隨著前后端的分離,API接口變得越來越重要,作為前后端通信的接口,API 變得非常重要,而且它的設(shè)計也是非常難以掌握。不僅要考慮安全性,還要考慮可維護(hù)性,以及今后的升級等等。
如何才能設(shè)計出更好的API接口,我認(rèn)為以下幾點(diǎn)需要注意。
接口一致性
這里說的一致性指的是編碼規(guī)范要統(tǒng)一,不能各個接口使用不一樣的編碼風(fēng)格。對于返回格式的處理也是一樣,要統(tǒng)一返回格式,返回碼也要統(tǒng)一,對于403,404的處理要保持一致。
授權(quán)認(rèn)證
大部分接口都是需要授權(quán)認(rèn)證的,因此我們需要對接口的授權(quán)認(rèn)證進(jìn)行判斷,這樣可以過濾掉大部分的非法訪問。
接口健康性檢查
我們應(yīng)該設(shè)計一個監(jiān)控系統(tǒng)或者一個接口來實時監(jiān)控我們的服務(wù),如果接口出現(xiàn)了問題,我們應(yīng)該能夠第一時間發(fā)現(xiàn),同樣,對于每個接口的訪問請求我們都要有日志記錄的存儲。
版本管理
無論是小程序,還是app,還是網(wǎng)站,我們都是需要版本升級的,而提前設(shè)計好版本,可以避免因為升級導(dǎo)致舊的服務(wù)無法正常工作,我們要保證在升級的時候,新舊版本的服務(wù)都能正常運(yùn)轉(zhuǎn)。
參數(shù)接收判斷
對于接口參數(shù)的個數(shù),參數(shù)的類型,我們都要進(jìn)行判斷處理,對于一些非法字段,我們要及時發(fā)現(xiàn)并處理,總之,用戶傳送的信息,我們總要保持懷疑態(tài)度去處理它。
盡量采用restful風(fēng)格
雖然restful風(fēng)格被一些人質(zhì)疑,但是目前來看,它還是最好的接口設(shè)計風(fēng)格,通過采用restful風(fēng)格,可以讓接口語義更加明確 ,規(guī)范,優(yōu)雅省去了大部分 無意義的溝通,通過使用不同的http狀態(tài)碼,可以非常清楚地幫助用戶理解接口的返回情況。
提供完整詳細(xì)的API文檔
無論我們的接口設(shè)計得多么規(guī)范,多么易懂,我們都需要提供一份完整的api文檔,同時我們還需要提供一些請求范例,這樣用戶在使用的時候才會更加清楚,也能避免一些錯誤的請求。
錯誤返回要明確
對于錯誤信息返回的時候盡量要明確,是程序問題,還是查找問題,還是參數(shù)問題,或者其他原因,給出明確具體的錯誤原因,非常方便我們對問題的處理。
統(tǒng)一設(shè)計分頁
對于資源的請求都采用分頁返回,一方面減少了資源的返回,一方面減少了服務(wù)器的開銷。
做好限流控制
你永遠(yuǎn)不知道你的用戶會怎樣使用你的接口,可能它會因為錯誤地返回結(jié)果而不停地重試接口,我們要能夠?qū)︻l繁請求進(jìn)行限制。