有點(diǎn)不太明白web和api方式的真正區(qū)別,
只是覺(jué)得web方式是對(duì)應(yīng)前端用瀏覽器呈現(xiàn),而api是對(duì)應(yīng)手機(jī)/平板用app呈現(xiàn)
而且,web方式可以自然輕松地維護(hù)狀態(tài)(session, cookie),而api無(wú)狀態(tài),但是可以人為地用token維持狀態(tài)。
不知道這種認(rèn)識(shí)是否正確?【問(wèn)題1】
api方式存在ajax問(wèn)題嗎?【問(wèn)題2】
用laravel一點(diǎn)點(diǎn)做了一個(gè)網(wǎng)站的簡(jiǎn)陋雛形(自然是web方式),考慮未來(lái)開(kāi)發(fā)相應(yīng)的手機(jī)/平板app前端,這個(gè)時(shí)候我想,能不能去掉所有的web方式訪(fǎng)問(wèn),無(wú)論是瀏覽器還是app都通過(guò)api的方式連接后端(服務(wù)端),這樣一來(lái),我就不用開(kāi)發(fā)web方式的后端,只要開(kāi)發(fā)api方式的后端就行了。
這樣做可行嗎?【問(wèn)題3】
這樣做容易實(shí)現(xiàn)嗎?【問(wèn)題4】
這樣做是否是行業(yè)通行做法?【問(wèn)題5】
先謝!
擁有18年軟件開(kāi)發(fā)和IT教學(xué)經(jīng)驗(yàn)。曾任多家上市公司技術(shù)總監(jiān)、架構(gòu)師、項(xiàng)目經(jīng)理、高級(jí)軟件工程師等職務(wù)。 網(wǎng)絡(luò)人氣名人講師,...
問(wèn)題1:基本正確。用token不能算維持狀態(tài),只是一個(gè)臨時(shí)的訪(fǎng)問(wèn)令牌而已。
問(wèn)題2:后端API并不關(guān)心前端是不是ajax,畢竟ajax只是web的技術(shù),而API可以接收各種類(lèi)型的HTTP請(qǐng)求。web的ajax唯一需要注意的是跨域問(wèn)題。
問(wèn)題3:當(dāng)然可行,這就是典型的前后端分離web開(kāi)發(fā)。
問(wèn)題4:容易,前端和后端可以完全獨(dú)立開(kāi)發(fā),只需要API接口約定好。
問(wèn)題5:其實(shí)已經(jīng)通行很久了,不過(guò)你能獨(dú)立悟出這一點(diǎn)也是不錯(cuò)的。
關(guān)于pc端與app端公用同一套代碼api實(shí)現(xiàn)的問(wèn)題,有好處也有不好的地方,因?yàn)閍pp受界面的限制,呈現(xiàn)的內(nèi)容與pc應(yīng)該還是有區(qū)別的,所以分開(kāi)維護(hù)實(shí)現(xiàn)比較好,當(dāng)然也有不好的地方,就是代碼修改起來(lái)就要修改兩個(gè)地方,所以還是看自己的綜合考慮吧
我感覺(jué)如果產(chǎn)品服務(wù)需要衍生到很多平臺(tái),那就用API的方式開(kāi)發(fā)。而且是各平臺(tái)的功能、內(nèi)容都高度耦合。
如果是網(wǎng)站功能很繁多、運(yùn)營(yíng)以網(wǎng)站為主,而APP簡(jiǎn)化了很多,這時(shí)候也可以獨(dú)立給APP做個(gè)API,網(wǎng)站還是用傳統(tǒng)的方式開(kāi)發(fā)效率高一點(diǎn)。
前后端分離對(duì)SEO不太友好。
為了兼顧SEO和前后端分離而讓后端換語(yǔ)言就有點(diǎn)太花費(fèi)時(shí)間了