作者aoksc (重出江湖)
看板Web_Design
標題[問題] 前端呼叫API路徑問題
時間Mon Oct 29 11:58:29 2018
請問各位
目前比較推薦的網頁串接後端API的作法是什麼呢?
我目前是預計後端用C#前端框架用React
前端打包部份用Webpack
請問像這樣子的架構專案要怎麼開呢?
以前有遇過是類似開一個空的MVC專案用gulp
然後在前端直接call後端controller的路徑來取得資料render畫面
新的專案有考慮前端開一個專案
後端開一個專案的架構
但想請問如果這樣的架構下
那我前端要呼叫API的話
我要怎麼設定呢?
例如以前的專案可能只要/{某個controller}/{Action}
因為都在同一個專案底下所以也不須考慮Host name的問題
那如果真的分成兩個獨立專案的話這問題要怎麼解決呢?
因為小弟對於前端真的不太熟悉
希望各位能指點一下或是給我一些key word讓我有個方向
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.65.133
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Web_Design/M.1540785512.A.956.html
1F:→ crossdunk: 不懂你意思 10/29 14:23
2F:→ crossdunk: 前後端拆開的話呼叫的就是後端的domain name啊 10/29 14:24
3F:推 diabloevagto: Restful 10/29 14:44
4F:→ diabloevagto: 你後端方式就照舊,只是前面加上 domain name 10/29 14:45
5F:推 Neisseria: 就前後端分離和 CORS,可以做,一開始工會比較多 10/29 19:34
我的意思就是說之前遇過網頁跟Controller都在同一個專案中
那麼我用ajax呼叫的url只需要像是/Home/GetXXX
因為都是在同一個專案中
所以不管是在本機還是在正式環境都沒差
但如果是在不同專案的話
url不就是要指定domain name嗎?
但本機測試的domain name又跟正式環境不一樣
我的認知是這樣所以才會有這疑問
還是其實有簡單的解法嗎?
※ 編輯: aoksc (150.117.240.159), 10/29/2018 22:08:05
6F:推 shter: 基本上 API 那邊不管是 PHP Node.js python perl ... 10/29 23:10
7F:→ shter: 不就是一串 url 嗎? 就算開發環境跟正式環境 domain 不一樣 10/29 23:11
8F:→ shter: 結構依然是 {domain name}/Home/GetXXX 10/29 23:11
9F:→ shter: 前面就是一個固定的變數,比如 let domain="aaa.bb.cc"; 10/29 23:12
10F:→ shter: 你的 code 組 url 時就是 domain + "/HomeGetXXX" 10/29 23:13
11F:→ shter: 然後依照你是在開發或正式環境,去改 domain 的值 10/29 23:13
12F:→ shter: 要嘛就所有 url 都加上 domain + path , domain 用全域變數 10/29 23:14
13F:→ shter: 不然就所有 url 寫在同一支 js , domain 可用區域變數 10/29 23:15
14F:→ qq076qq076: react 可以用env替換環境變數啊 10/31 03:08
15F:→ qq076qq076: build的時候指定不同env就可以了 10/31 03:09
16F:推 chatnoir: webpack可以設定proxy,build的時候再掛domain即可 11/06 00:53