對前后端分離如何調(diào)用接口這塊感覺一直沒怎么弄明白,但又不知如何說明,下面我模擬一個(gè)項(xiàng)目說明我的問題。
現(xiàn)在我們有個(gè)項(xiàng)目,前端用vue開發(fā),后端php開發(fā),后端測試地址為:localhost:8181,項(xiàng)目服務(wù)器地址是:www.cocoy.com。在開發(fā)階段模擬數(shù)據(jù)(userdata.json)是放在static文件夾里,而在后端與userdata.json對應(yīng)的文件userdata.php是在abc文件夾里的。
我的問題是:在開發(fā)階段讀取數(shù)據(jù)是這樣的:get("../static/userdata.json"),那在測試階段是不是要改成:get("http://localhost:8181/abc/userdata.php")。在生產(chǎn)環(huán)境把數(shù)據(jù)傳到服務(wù)器后又該怎么讀取數(shù)據(jù),難道是:get("http://www.cocoy.com/abc/userdata.php")?
還是說傳到服務(wù)器后前端和后端的文件分別放在不同的文件夾里,然后前端調(diào)用后端接口直接這樣:get("../后端文件夾/abc/userdata.php")?如果是這樣的話是不是只要將vue的設(shè)置文件里將static名稱改一下就可以了?
對這塊一直沒弄明白,希望大佬能解釋透徹一點(diǎn),感激不盡?。?!
先定義接口文檔, 如
用戶列表 | |
---|---|
地址 | /api/users |
請求方式 | GET |
請求參數(shù) | 類型 | 是否必填 | 說明 |
---|---|---|---|
type | int | N | 用戶類型 |
name | string | N | 用戶名稱 |
... |
響應(yīng)結(jié)果 | 類型 | 格式 | 說明 |
---|---|---|---|
ret | int | 200 | 登錄成功 |
int | 201 | 登錄失敗 | |
msg | string | 請求結(jié)果信息 | |
total | int | 滿足條件的數(shù)據(jù)條數(shù) | |
userList | Array<userInfo> | 用戶列表 |
userInfo | 字段 | 類型 | 格式 | 說明 |
---|---|---|---|---|
username | string | 用戶名稱 | ||
id | string | 用戶id | ||
... |
eg.
請求JSON:
{
"name": "wanghaiyang",
"type": 1
}
響應(yīng)JSON:
{
"ret": 200,
"msg": "success",
"userList": [
{
"username": "wanghaiyang",
"id": "12345676543"
}
...
],
"total": 1000
}
如果部署在同一臺服務(wù)器, 前端文件放在 Web服務(wù)器根目錄, 直接 get(/api/users) 接口就應(yīng)該返回對應(yīng)的 json 數(shù)據(jù), 跟后臺配置相關(guān), 不管你 php 文件放在何處
經(jīng)過仔細(xì)琢磨終于搞清楚是怎么弄的了,記錄在這里以備不時(shí)之需,如果有什么錯(cuò)誤希望大家指正。
現(xiàn)在假設(shè)項(xiàng)目后端接口地址:192.168.0.15/abc/data.php,打開config/index.js,設(shè)置proxyTable屬性:
proxyTable: {
'/abc': {
target: 'http://192.168.0.15', // 接口的域名
// secure: false, // 如果是https接口,需要配置這個(gè)參數(shù)
changeOrigin: true, // 如果接口跨域,需要進(jìn)行這個(gè)參數(shù)配置
pathRewrite: {
'^/abc': '/abc'
}
}
}
注意,上面代碼中abc不是隨便起的名字,它和后端接口地址的文件夾要一致,這樣當(dāng)你打包的時(shí)候就不會出錯(cuò)。
然后用axios引用接口:axios("/abc/data.php")。這樣在開發(fā)環(huán)境中就可以直接引用后端接口。npm run build打包后將dist里的文件復(fù)制到后端根目錄中,不需要更改任何代碼直接就可以調(diào)用后端abc/data.php接口。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。