API接口即應(yīng)用程序接口局扶,而php作為一款優(yōu)秀的S端語言,具有跨平臺(tái)(可以運(yùn)行在UNIX、LINUX三妈、WINDOWS畜埋、Mac OS下)、低消耗(PHP消耗相當(dāng)少的系統(tǒng)資源)畴蒲、運(yùn)行效率高(相對(duì)而言)悠鞍、與MySQL是完美搭檔,本身是免費(fèi)開源的模燥。
1)開發(fā)規(guī)范文檔的制定:
例如客戶端參數(shù)的傳遞方式(post/get/etc)咖祭,服務(wù)器端數(shù)據(jù)結(jié)果的返回格式(xml/json/test/etc);
2)參數(shù)接收:
與一般的web開發(fā)一樣蔫骂,首先要從客戶端獲取相關(guān)的參數(shù)么翰,然后根據(jù)獲取到的參數(shù)對(duì)數(shù)據(jù)進(jìn)行CURD操作;
3)數(shù)據(jù)返回:
服務(wù)器端對(duì)數(shù)據(jù)操作結(jié)束之后返回給客戶端所需要用到的相關(guān)數(shù)據(jù)進(jìn)行后續(xù)的數(shù)據(jù)渲染或其他操作辽旋。
API接口其實(shí)就是數(shù)據(jù)的整合浩嫌、篩選與輸出,所以API接口開發(fā)過程當(dāng)中只存在M(Model層)與C(Controller層)而沒有View層补胚,而不用呈現(xiàn)在頁(yè)面码耐;
API接口開發(fā)過程中注意事項(xiàng):
1-單文件多接口實(shí)現(xiàn)方法有很多種,例如if else/switch等流程控制或訪問不同的方法體溶其;
2-數(shù)據(jù)傳輸格式最好使用json伐坏,json具有很好的跨平臺(tái)性,主流編程語言都支持json格式的數(shù)據(jù)解析握联;
3-增加接口安全驗(yàn)證桦沉,服務(wù)器對(duì)每次接口的調(diào)用都要進(jìn)行過驗(yàn)證,防止接口被惡意刷新金闽、調(diào)用纯露;
4-對(duì)于上線之后的保證所有API接口正常且關(guān)閉所有的報(bào)錯(cuò)信息( error_reporting(0)),必須嚴(yán)格規(guī)范數(shù)據(jù)返回格式,否則客戶端數(shù)據(jù)解析失敗造成進(jìn)程中斷代芜;
5- (ps:部分人建議)客戶端一般對(duì)服務(wù)端的響應(yīng)速度有極高要求埠褪,因此,使用最原生態(tài)的PHP完成接口開發(fā)挤庇,是最高效的钞速,假如用到了框架,還需要加載各種不需要多余的文件嫡秕,降低程序運(yùn)行速度渴语。
項(xiàng)目中使用過的接口:(php開啟curl擴(kuò)展)
1-網(wǎng)站實(shí)現(xiàn)QQ、Weibo登錄時(shí)調(diào)用TX昆咽、XL接口查詢QQ用戶信息驾凶;
2-微信開發(fā)過程中調(diào)用百度API牙甫、和風(fēng)天氣等天氣查詢接口;
3-手機(jī)驗(yàn)證碼發(fā)送服務(wù)调违,調(diào)用第三方平臺(tái)API接口實(shí)現(xiàn)短信發(fā)送服務(wù)窟哺;
ps:Ajax異步技術(shù)也可以看做簡(jiǎn)易的API接口調(diào)用// Ajax訪問后臺(tái)程序接口(url/@param)接收返回?cái)?shù)據(jù)并進(jìn)行客戶端的數(shù)據(jù)渲染.例如項(xiàng)目當(dāng)中使用的highChart做報(bào)表等