php接口開發(fā)怎么運(yùn)用PHP開發(fā)API(應(yīng)用程序)的人應(yīng)該了解的問題php 微信接口開發(fā)
2022-11-25
首先回答兩個(gè)簡單的問題:
1、PHP可以開發(fā)客戶端嗎?
答:不是,因?yàn)镻HP是一種腳本語言,負(fù)責(zé)實(shí)現(xiàn)B/S結(jié)構(gòu)或C/S結(jié)構(gòu)的S部分,即:服務(wù)器端的開發(fā)。(不要打擾 GTK,)
2、為什么選擇PHP作為開發(fā)服務(wù)器的首選?
答:跨平臺(tái)(可以在UNIX,,,Mac OS下運(yùn)行),低消耗(PHP占用系統(tǒng)資源相當(dāng)多)seo優(yōu)化,運(yùn)行效率高(相對(duì)而言),完美搭檔,本身免費(fèi)開源,.. .
二、如何使用PHP開發(fā)API(應(yīng)用程序接口)?
做過API的人應(yīng)該都明白,開發(fā)API其實(shí)比開發(fā)WEB要簡單,但是邏輯可能更復(fù)雜。由于API實(shí)際是數(shù)據(jù)輸出,不需要顯示頁面,所以沒有MVC(API只有M和C)。
1. 和WEB開發(fā)類似,首先需要一些相關(guān)的參數(shù),這些參數(shù)會(huì)從客戶端傳過來,要么是GET,要么是POST。這就需要開發(fā)團(tuán)隊(duì)之間達(dá)成共識(shí),或者制定一個(gè)一致的標(biāo)準(zhǔn)。
2、帶參數(shù),根據(jù)應(yīng)用需求完成數(shù)據(jù)處理php接口開發(fā),如:任務(wù)進(jìn)度更新、APP內(nèi)購、游戲結(jié)束后數(shù)據(jù)提交等。
3、數(shù)據(jù)邏輯處理完成后,返回客戶端需要的相關(guān)數(shù)據(jù),如:任務(wù)狀態(tài)、內(nèi)購結(jié)果、玩家信息等。
數(shù)據(jù)如何返回給客戶端?
直接輸出的方式,如:JSON、xml、TEXT等。
3、在實(shí)際項(xiàng)目中,我們?cè)陂_發(fā)API時(shí)需要注意幾點(diǎn)(僅供參考):
1、在單個(gè)文件中實(shí)現(xiàn)多個(gè)接口的方式有很多種,例如:if..或者動(dòng)態(tài)方式(也就是TP中訪問函數(shù)體的方式)
2、數(shù)據(jù)輸出,最好使用json。JSON 具有相當(dāng)強(qiáng)的跨渠道能力。市面上主流的編程語言都支持json解析。json正在逐漸取代xml成為網(wǎng)絡(luò)數(shù)據(jù)的通用格式
3.為了接口安全,必須增加接口驗(yàn)證。例如,客戶端和服務(wù)器就不同接口的加密方式達(dá)成一致,服務(wù)器必須驗(yàn)證每個(gè)接口要求。確保接口不被黑客惡意刷新或惡意調(diào)用,尤其是大型商業(yè)應(yīng)用。
4、關(guān)于在線API,一定要保證所有接口正常,關(guān)閉所有錯(cuò)誤信息=>(0)。輸出JSON時(shí),不能有其他輸出,否則客戶端解析數(shù)據(jù)失敗,直接!
5、開發(fā)API和WEB有一定區(qū)別。如果是WEB,可能是代碼出錯(cuò),不會(huì)造成特別嚴(yán)重的錯(cuò)誤,也可能只是造成數(shù)據(jù)寫入和查詢失敗網(wǎng)站優(yōu)化,或者造成WEB某部分錯(cuò)位或亂碼。但如果是API,直接!
6、接口開發(fā)不推薦使用結(jié)構(gòu)開發(fā)。原因有二(其實(shí)我有點(diǎn)冒險(xiǎn),而且我也是TPer,畢竟這是TP的官網(wǎng)):
1)客戶端一般對(duì)服務(wù)器的響應(yīng)速度有極高的要求。因此,使用最原始的PHP來完成界面開發(fā)是最高效的。如果使用該結(jié)構(gòu),還需要加載各種不需要的文件,比如夏天穿冬裝。試想一下,當(dāng)你在玩手機(jī)的時(shí)候,你可以用一個(gè)應(yīng)用程序進(jìn)行任何操作,等待很長時(shí)間才有更新。你能忍受嗎?
2)如上第4點(diǎn)所述,結(jié)構(gòu)對(duì)于WEB開發(fā)來說是一件很美妙的事情,但是對(duì)于API來說,你真的不敢想象它會(huì)給你帶來什么麻煩!到頭來你就慘了~~因?yàn)楹芏嘟Y(jié)構(gòu)都是為WEB而生的(我也期待有一天能看到專門開發(fā)API的結(jié)構(gòu)或者擴(kuò)展)
有些人為此苦苦掙扎。接口的功能和穩(wěn)定性取決于編碼器。有的人可能寫的不如結(jié)構(gòu)快,有的人認(rèn)為結(jié)構(gòu)沒有問題。這只是一個(gè)建議。關(guān)鍵看你自己的實(shí)踐。我們建議在上線前測(cè)試代碼
說到這里,就不得不說說開通騰訊微博、淘寶等渠道。其實(shí)那些開放平臺(tái),所謂開放,就是給你提供這樣一個(gè)接口,你根據(jù)他們提供的技術(shù)文檔,根據(jù)他們制定的格式和要求php接口開發(fā),調(diào)整他們提供的接口文件(通常返回JSON或者xml) ,可以獲取到他們的相關(guān)信息,如:QQ用戶基本信息、淘寶店鋪、商品信息等。然后根據(jù)這些信息,在你的應(yīng)用中完成交互。