php開(kāi)發(fā)API接口入門知識(shí)了解

PHP常見(jiàn)的框架了解一二拨齐,僅閱讀驰贷。

1.框架是如何產(chǎn)生的盛嘿?

不管是前端還是后端,在項(xiàng)目開(kāi)發(fā)中饱苟,一些架構(gòu)和代碼都是重復(fù)的孩擂,為了避免這種累死人的重復(fù)勞動(dòng)狼渊,于是各種各樣的框架就應(yīng)運(yùn)而生了箱熬。
在任何(PHP)開(kāi)發(fā)中类垦,選擇合適的框架有助于加快軟件開(kāi)發(fā),可以節(jié)約寶貴的項(xiàng)目時(shí)間城须,讓開(kāi)發(fā)者專注于功能的實(shí)現(xiàn)上蚤认。由于流行的框架經(jīng)過(guò)了大量項(xiàng)目的檢驗(yàn),所以使用框架還有助于創(chuàng)建更加穩(wěn)定和安全的應(yīng)用程序糕伐。

2.我們常見(jiàn)的熟知的幾種框架有哪些砰琢?

Laravel框架

Laravel是一個(gè)簡(jiǎn)單優(yōu)雅的PHPWeb開(kāi)發(fā)框架,可以將開(kāi)發(fā)者從意大利面條式的代碼中解放出來(lái)良瞧,通過(guò)簡(jiǎn)單陪汽、高雅、表達(dá)式語(yǔ)法開(kāi)發(fā)出很棒的Web應(yīng)用褥蚯,Laravel擁有更富有表現(xiàn)力的語(yǔ)法挚冤、高質(zhì)量的文檔、豐富的擴(kuò)展包赞庶,被稱為“巨匠級(jí)PHP開(kāi)發(fā)框架”训挡,所以也是目前使用人數(shù)最多,人群最大的框架(一般用于路由)歧强。

ThinkPHP框架

ThinkPHP是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用開(kāi)發(fā)和敏捷WEB應(yīng)用開(kāi)發(fā)而誕生的澜薄。最早誕生于2006年初,2007年元旦正式更名為ThinkPHP摊册,并且遵循Apache2開(kāi)源協(xié)議發(fā)布肤京。ThinkPHP從誕生以來(lái)一直秉承簡(jiǎn)潔實(shí)用的設(shè)計(jì)原則,在保持出色的性能和至簡(jiǎn)的代碼的同時(shí)茅特,也注重易用性蟆沫。并且擁有眾多原創(chuàng)功能和特性,在社區(qū)團(tuán)隊(duì)的積極參與下温治,在易用性饭庞、擴(kuò)展性和性能方面不斷優(yōu)化和改進(jìn)。ThinkPHP是一個(gè)快速熬荆、兼容而且簡(jiǎn)單的輕量級(jí)國(guó)產(chǎn)PHP開(kāi)發(fā)框架舟山,從Struts結(jié)構(gòu)移植過(guò)來(lái)并做了改進(jìn)和完善,同時(shí)也借鑒了國(guó)外很多優(yōu)秀的框架和模式卤恳,使用面向?qū)ο蟮拈_(kāi)發(fā)結(jié)構(gòu)和MVC模式累盗,融合了Struts的思想和TagLib(標(biāo)簽庫(kù))、RoR的ORM映射和ActiveRecord模式突琳。


三種開(kāi)發(fā)環(huán)境需知

1.WAMP集成開(kāi)發(fā)環(huán)境

windows環(huán)境下(操作系統(tǒng))若债、Apache網(wǎng)絡(luò)服務(wù)器(web)惑朦、MySQL數(shù)據(jù)庫(kù)劲装、PHP動(dòng)態(tài)腳本語(yǔ)言淘太。其中以AppServ和phpStudy網(wǎng)頁(yè)架站工具組合包最合適新手入門疑苔,跳過(guò)了繁瑣的環(huán)境搭建工作。

2.LAMP集成開(kāi)發(fā)環(huán)境

LAMP是基于Linux操作系統(tǒng)傲须,Apache網(wǎng)絡(luò)服務(wù)器蓝牲,MySQL數(shù)據(jù)庫(kù)和PHP動(dòng)態(tài)腳本語(yǔ)言

3.LNMP集成開(kāi)發(fā)環(huán)境

Linux操作系統(tǒng)、nginx服務(wù)器泰讽、MySQL數(shù)據(jù)庫(kù)和PHP動(dòng)態(tài)腳本語(yǔ)言

區(qū)別:apahce適合運(yùn)行在windows操作系統(tǒng)下例衍,nginx(也是web服務(wù)器),只不過(guò)他適合運(yùn)行在linux操作系統(tǒng)已卸。


API接口了解一下

淺談:

在以前的傳統(tǒng)開(kāi)發(fā)中佛玄,也就是前后端未分離之前的時(shí)代,基本是一套代碼一個(gè)模板渲染累澡,不太可靠翎嫡。
隨著移動(dòng)端和各種平臺(tái)小程序的興起到來(lái),就像uni-app框架一樣永乌,一套代碼惑申,支持所有的平臺(tái)訪問(wèn)(無(wú)論你是百度小程序、微信小程序翅雏、H5app還是其他的小程序圈驼,都只是用一套php接口就夠了,因?yàn)樗m用任何平臺(tái)開(kāi)發(fā)望几、真正實(shí)現(xiàn)了前后端的分離開(kāi)發(fā))

1.什么是API接口绩脆?

App = Application 是應(yīng)用程序,是向讓用戶呈現(xiàn)使用的界面。
API = Application program interface 是應(yīng)用程序編程接口橄抹,是用別的程序通過(guò)這個(gè)接口來(lái)調(diào)用相關(guān)數(shù)據(jù)的靴迫。(有時(shí)候還會(huì)叫成app接口)

2.API其工作原理又是什么?作用是什么楼誓?

原理:客戶端向服務(wù)器發(fā)送url請(qǐng)求(通過(guò)http協(xié)議進(jìn)行通訊)玉锌,去拿數(shù)據(jù),服務(wù)器響應(yīng)客戶端的請(qǐng)求(這一過(guò)程還會(huì)訪問(wèn)數(shù)據(jù)庫(kù))疟羹。將數(shù)據(jù)發(fā)回給客戶端主守,客戶端通過(guò)解析處理數(shù)據(jù),然后渲染到界面上榄融。

作用:API接口其實(shí)就是客戶端和服務(wù)端的一種數(shù)據(jù)通訊與交互参淫。

3.API可以做什么?

通過(guò)大數(shù)據(jù)算法愧杯,可以做到千人千面向用戶推送不一樣的數(shù)據(jù)涎才,商城類app就是一個(gè)例子,會(huì)根據(jù)個(gè)人喜好推送商品力九。


客戶端是如何向服務(wù)端發(fā)送數(shù)據(jù)的耍铜?服務(wù)端又是如何接收客戶端發(fā)過(guò)來(lái)的數(shù)據(jù)呢邑闺?

大部分API接口是通過(guò)HTTP協(xié)議進(jìn)行通訊的。


HTTP通訊的三要素业扒,滿足才可以通訊检吆。


實(shí)際情況:

客戶端發(fā)起的請(qǐng)求

客戶端響應(yīng)的數(shù)據(jù)

app接口輸入舒萎,客戶端如何向服務(wù)端傳遞參數(shù)程储?

第一種模式,URL參數(shù)傳遞(常見(jiàn)的get請(qǐng)求)

URL參數(shù)傳遞臂寝,即把參數(shù)拼裝在url后面章鲤,url?后面就是我們的拼接參數(shù),&是連接多個(gè)參數(shù)。

例子:


url地址拼接

查看get請(qǐng)求的參數(shù)

查看攜帶的參數(shù)

第二種模式:Request Body

將請(qǐng)求的內(nèi)容放到請(qǐng)求體里面咆贬。一般也就是form表單提交這一類的內(nèi)容,說(shuō)到form表單提交就會(huì)聯(lián)想到POST請(qǐng)求败徊。form表單通過(guò)post請(qǐng)求,請(qǐng)求的格式類型是from-urlencoded,請(qǐng)求的資源會(huì)呈現(xiàn)Form Data的字樣掏缎。

1.form-urlencoded請(qǐng)求方式:


POST請(qǐng)求
from-urlencoded格式

Form Data字樣

2.POST請(qǐng)求的另一種編碼格式方式是form-data,用于分割多個(gè)不同的請(qǐng)求參數(shù)皱蹦。


第三種模式:post-json提交json字符串

post-json它提交的是json字符串,是H5和API常見(jiàn)的方式,它和提交url和form表單的那種方式不一樣眷蜈。它是提交給服務(wù)器進(jìn)行解析的json數(shù)據(jù)沪哺。

json格式傳遞給服務(wù)端
解析的是json對(duì)象

總結(jié):上面三種模式都是客戶端傳遞參數(shù)給服務(wù)端。而服務(wù)端(也就是php)要怎么去使用客戶端傳遞過(guò)來(lái)的參數(shù)呢酌儒?如何將客戶端的傳遞過(guò)來(lái)的參數(shù)變成php的變量使用辜妓?


服務(wù)端(php)如何獲取接收客戶端傳遞過(guò)來(lái)的參數(shù)?

通過(guò)預(yù)定義變量$_POST['']獲取post請(qǐng)求


通過(guò)預(yù)定義變量$_GET['']獲取get請(qǐng)求

通過(guò)php的input流的file_get_contents()方法讀取原始json數(shù)據(jù)
通過(guò)json_decode()解析json字符串

案例代碼發(fā)送POST請(qǐng)求:index.html用于提交表單元素

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <form action="test.php" method="post">
            用戶:<input type="text" name="userName" value="qinfubin"/>
            密碼:<input type="password" name="password" value="123456"/>
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

php代碼:

<?
$user = $_POST['userName'];
$passwd = $_POST['password'];
var_dump($user,$passwd);
?>

Network查看信息:


POST請(qǐng)求

form-urlencoded請(qǐng)求格式

Form Data客戶端發(fā)送的數(shù)據(jù)

服務(wù)端響應(yīng)回來(lái)的信息:



前端和后端的數(shù)據(jù)交互傳輸格式

傳統(tǒng)的是xml,一種類似h5的文本標(biāo)記語(yǔ)言,不過(guò)現(xiàn)在主流api接口都使用json對(duì)象的傳輸格式忌怎,json是一種輕量級(jí)籍滴、友好的數(shù)據(jù)交互格式,作為一種數(shù)據(jù)交換輸出的標(biāo)準(zhǔn)格式榴啸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末孽惰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸥印,更是在濱河造成了極大的恐慌灰瞻,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,029評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辅甥,死亡現(xiàn)場(chǎng)離奇詭異酝润,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)璃弄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門要销,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人夏块,你說(shuō)我怎么就攤上這事疏咐∠说В” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 157,570評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵浑塞,是天一觀的道長(zhǎng)借跪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)酌壕,這世上最難降的妖魔是什么掏愁? 我笑而不...
    開(kāi)封第一講書人閱讀 56,535評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮卵牍,結(jié)果婚禮上果港,老公的妹妹穿的比我還像新娘。我一直安慰自己糊昙,他們只是感情好辛掠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著释牺,像睡著了一般萝衩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上没咙,一...
    開(kāi)封第一講書人閱讀 49,850評(píng)論 1 290
  • 那天猩谊,我揣著相機(jī)與錄音,去河邊找鬼镜撩。 笑死预柒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的袁梗。 我是一名探鬼主播宜鸯,決...
    沈念sama閱讀 39,006評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼遮怜!你這毒婦竟也來(lái)了淋袖?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,747評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锯梁,失蹤者是張志新(化名)和其女友劉穎即碗,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體陌凳,經(jīng)...
    沈念sama閱讀 44,207評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剥懒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了合敦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片初橘。...
    茶點(diǎn)故事閱讀 38,683評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出保檐,到底是詐尸還是另有隱情耕蝉,我是刑警寧澤,帶...
    沈念sama閱讀 34,342評(píng)論 4 330
  • 正文 年R本政府宣布夜只,位于F島的核電站垒在,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扔亥。R本人自食惡果不足惜场躯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望砸王。 院中可真熱鬧推盛,春花似錦峦阁、人聲如沸谦铃。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,772評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)驹闰。三九已至,卻和暖如春撒会,著一層夾襖步出監(jiān)牢的瞬間嘹朗,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,004評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工诵肛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屹培,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,401評(píng)論 2 360
  • 正文 我出身青樓怔檩,卻偏偏與公主長(zhǎng)得像褪秀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子薛训,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容