[問題] 前端呼叫API路徑問題

看板Web_Design作者 (重出江湖)時間5年前 (2018/10/29 11:58), 5年前編輯推噓4(4012)
留言16則, 6人參與, 5年前最新討論串1/3 (看更多)
請問各位 目前比較推薦的網頁串接後端API的作法是什麼呢? 我目前是預計後端用C#前端框架用React 前端打包部份用Webpack 請問像這樣子的架構專案要怎麼開呢? 以前有遇過是類似開一個空的MVC專案用gulp 然後在前端直接call後端controller的路徑來取得資料render畫面 新的專案有考慮前端開一個專案 後端開一個專案的架構 但想請問如果這樣的架構下 那我前端要呼叫API的話 我要怎麼設定呢? 例如以前的專案可能只要/{某個controller}/{Action} 因為都在同一個專案底下所以也不須考慮Host name的問題 那如果真的分成兩個獨立專案的話這問題要怎麼解決呢? 因為小弟對於前端真的不太熟悉 希望各位能指點一下或是給我一些key word讓我有個方向 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.136.65.133 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1540785512.A.956.html

10/29 14:23, 5年前 , 1F
不懂你意思
10/29 14:23, 1F

10/29 14:24, 5年前 , 2F
前後端拆開的話呼叫的就是後端的domain name啊
10/29 14:24, 2F

10/29 14:44, 5年前 , 3F
Restful
10/29 14:44, 3F

10/29 14:45, 5年前 , 4F
你後端方式就照舊,只是前面加上 domain name
10/29 14:45, 4F

10/29 19:34, 5年前 , 5F
就前後端分離和 CORS,可以做,一開始工會比較多
10/29 19:34, 5F
我的意思就是說之前遇過網頁跟Controller都在同一個專案中 那麼我用ajax呼叫的url只需要像是/Home/GetXXX 因為都是在同一個專案中 所以不管是在本機還是在正式環境都沒差 但如果是在不同專案的話 url不就是要指定domain name嗎? 但本機測試的domain name又跟正式環境不一樣 我的認知是這樣所以才會有這疑問 還是其實有簡單的解法嗎? ※ 編輯: aoksc (150.117.240.159), 10/29/2018 22:08:05

10/29 23:10, 5年前 , 6F
基本上 API 那邊不管是 PHP Node.js python perl ...
10/29 23:10, 6F

10/29 23:11, 5年前 , 7F
不就是一串 url 嗎? 就算開發環境跟正式環境 domain 不一樣
10/29 23:11, 7F

10/29 23:11, 5年前 , 8F
結構依然是 {domain name}/Home/GetXXX
10/29 23:11, 8F

10/29 23:12, 5年前 , 9F
前面就是一個固定的變數,比如 let domain="aaa.bb.cc";
10/29 23:12, 9F

10/29 23:13, 5年前 , 10F
你的 code 組 url 時就是 domain + "/HomeGetXXX"
10/29 23:13, 10F

10/29 23:13, 5年前 , 11F
然後依照你是在開發或正式環境,去改 domain 的值
10/29 23:13, 11F

10/29 23:14, 5年前 , 12F
要嘛就所有 url 都加上 domain + path , domain 用全域變數
10/29 23:14, 12F

10/29 23:15, 5年前 , 13F
不然就所有 url 寫在同一支 js , domain 可用區域變數
10/29 23:15, 13F

10/31 03:08, 5年前 , 14F
react 可以用env替換環境變數啊
10/31 03:08, 14F

10/31 03:09, 5年前 , 15F
build的時候指定不同env就可以了
10/31 03:09, 15F

11/06 00:53, 5年前 , 16F
webpack可以設定proxy,build的時候再掛domain即可
11/06 00:53, 16F
文章代碼(AID): #1RreLebM (Web_Design)
文章代碼(AID): #1RreLebM (Web_Design)